我知道围绕这个问题问了多少问题,但我仍然无法找到问题的答案。
我需要部署一个ASP。NET 4.0网站,我想做这样的事情:
- 获取整个解决方案的最新版本-一个网站和网络应用程序使用的几个类项目(我已经在使用CCNet了,这不是问题)
- 在调试配置中构建并部署到测试站点
- 在发布配置中生成并部署到临时站点
- 如果临时站点上的一切看起来都很好,我将运行一个脚本,将发布构建临时站点部署到同一服务器上不同客户使用的7-8个类似站点。将来这将在另一台服务器上
有MSDeploy(webdeploy 2.0)、aspnet_compiler、MSBuild、Powershell(我选择的武器..)等等。。。我不能100%确定在哪里使用什么?
我很想从Vs2010GUI辅助部署中模仿"运行网站所需的唯一部署文件",我也很想有可能不接触我们部署到的网站中的一些现有文件夹。
我觉得我应该经常使用MSDeploy。。。但我发现很难得到。我正在IIS中阅读。NET,我听过Scott Hanselman/Jon Arild Tørresdal的播客。我不能百分之百确定从哪里开始。。。我不是MSBuild专家,所以Powershell在我看来很不错。但我觉得这样做会错过合适的工具。。。
你会在哪一步使用什么工具??
据我所说,MSDeploy的构建是为了通过更多的控制来满足您的所有需求。MSDeploy是IIS团队的产品,它的功能更加丰富。
回答您的问题注意事项:Svn作为源代码管理,MSDeploy用于部署
-
您可以使用SVN命令行工具在某个临时目录中获取源代码的最新版本,并使用MSBuild命令行工具进行构建。然后,您可以创建部署包或发布内容包,这些包可以部署到特定环境中。我目前正在做一个项目,该项目基本上可以创建一个独立于环境的部署包,这意味着pacakge可以部署到任何阶段/测试/实时环境。创建部署包的示例是…
msbuild C:\Projects\NimBuildDeployTestApp\NimBuildDeployment WebApp/NimBuildDeployWebApp.csproj/t:package/p:Configuration=Release/p:PackageLocation=C:\Temp\DeployPackage\NimTestWebApp.zip/p:EnablePackageProcessLoggingAndAssert=true
-
使用MSDeploy命令行工具部署包,如下所示
msdeploy-verb:sync-source:package=packagelocation-dest:CONFIGURABLE_ACCORDING_TO_YOUR_NEEDS
-
用户步骤2使用MSBUILD在Release模式下构建解决方案,并在msdeploy中配置dest参数。
-
如果您的临时服务器上一切正常,请运行deploymentToLive.batch文件,该文件将在您的实时服务器上部署特定的PublishContent/包。在同一批处理文件中执行7个msdeploy脚本,或者使用DFS(这是一个更复杂的解决方案)
MSDeploy绝对是一条路。您可以考虑的一件事是准备好一个部署包,它可以部署到您的任何环境中。我的意思是,你的web.config文件不会对所有环境都相似,因此创建一个包含所有环境的web.conf文件的部署包。在这里参考我的解决方案
希望这能帮助您并让您有信心实现部署过程的自动化