aspnet部署工具的最佳组合

时间:2011-06-25 16:46:33

标签: msbuild msdeploy aspnet-compiler

我知道围绕这个问题已经提出了多少问题,但我仍然无法找到问题的答案。

我需要部署一个ASP.NET 4.0站点,我想做这样的事情:

  1. 获取最新版本og整个解决方案 - webapp使用的网站和几个类项目(我这样做已经使用CCNet - 不是问题)
  2. 在调试配置中构建和部署到测试站点
  3. 在发布配置中构建和部署到暂存站点
  4. 如果暂存站点上的所有内容都很好,我将运行一个脚本,将发布版本的暂存站点部署到同一服务器上不同客户使用的7-8个类似站点。将来,这将在另一台服务器上。
  5. 有MSDeploy(webdeploy 2.0),aspnet_compiler,MSBuild,Powershell(我选择的武器......)以及更多......我不是100%确定在哪里使用?

    我很想模仿Vs2010 GUI辅助部署中的“仅部署运行网站所需的文件”,我希望有可能不会触及我们部署到的网站中的某些现有文件夹。

    我觉得我应该经常使用MSDeploy ......但我发现很难获得。我正在IIS.NET中读书,我听过Scott Hanselman / JonArildTørresdal播客。我不是100%确定从哪里开始......而且我不是MSBuild专家,因此Powershell对我来说非常好看。但我觉得我错过了正确的工具,就这样......

    你会在哪一步使用什么工具?

1 个答案:

答案 0 :(得分:-1)

据我所知,MSDeploy的构建旨在通过更多控制来满足您的所有需求。 MSDeploy是IIS团队的产品,它的功能更丰富。

回答你的问题 注意事项:Svn作为源控件,MSDeploy用于部署

  1. 您可以使用SVN命令行工具在某个临时目录中获取最新版本的源代码,并使用MSBuild命令行工具构建它。然后,您可以创建可以部署到特定环境的部署包或发布内容包。我目前正在开发一个基本上可以创建独立于环境的部署包的项目,这意味着可以将pacakge部署到任何阶段/测试/实时环境。用于创建部署包的示例是......

    msbuild C:\ Projects \ NimBuildDeployTestApp \ NimBuildDeployWebApp / NimBuildDeployWebApp.csproj / t:package / p:Configuration = Release /p:PackageLocation=C:\Temp\DeployPackage\NimTestWebApp.zip / p:EnablePackageProcessLoggingAndAssert = true

  2. 使用MSDeploy命令行工具部署程序包,如下所示

    msdeploy -verb:sync -source:package = packagelocation -dest:CONFIGURABLE_ACCORDING_TO_YOUR_NEEDS

  3. 用户步骤2使用MSBUILD在Release模式下构建解决方案,并在msdeploy中配置dest参数。

  4. 如果您的登台服务器上的一切似乎都很好,请运行deploymentToLive.batch文件,该文件将在您的实时服务器上部署特定的PublishContent /包。在同一批处理文件中执行7 msdeploy脚本,否则使用DFS(这是一个更复杂的解决方案)

  5. MSDeploy绝对是最佳选择。您可以考虑的一件事是准备好部署包,可以将其部署到您的任何环境中。我的意思是你的web.config文件对于所有的环境都不相似,因此创建一个包含所有环境的web.confif文件的部署包。请参阅我的解决方案here

    希望这会有所帮助,让您有信心继续自动化部署过程