1

我知道围绕这个问题问了多少问题,但我仍然无法弄清楚我的问题的答案。

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

  1. 获取整个解决方案的最新版本 - webapp 使用的网站和几个类项目(我已经在使用 CCNet 进行此操作 - 没问题)
  2. 在调试配置中构建并部署到测试站点
  3. 在发布配置中构建并部署到临时站点
  4. 如果暂存站点上一切正常,我将运行一个脚本,将发布构建暂存站点部署到同一服务器上不同客户使用的 7-8 个类似站点。将来这将在另一台服务器上。

有 MSDeploy(webdeploy 2.0)、aspnet_compiler、MSBuild、Powershell(我选择的武器..)等等……我不是 100% 确定在哪里使用什么?

我很想模仿 Vs2010 GUI 辅助部署中的“运行站点所需的唯一部署文件”,并且我希望有可能不接触我们部署到的网站中的一些现有文件夹。

我觉得我应该经常使用 MSDeploy ......但我发现它很难 GET。我正在阅读 IIS.NET,并且听过 Scott Hanselman/Jon Arild Tørresdal 播客。我不是 100% 确定从哪里开始……而且我不是 MSBuild 专家,所以 Powershell 对我来说看起来不错。但我觉得这样我错过了正确的工具......

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

4

1 回答 1

-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 在发布模式下构建解决方案并在 msdeploy 中配置 dest 参数。

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

MSDeploy 绝对是要走的路。您可能会考虑的一件事是准备好一个可以部署到您的任何环境中的部署包。我的意思是您的 web.config 文件对于所有环境都不相似,因此创建一个包含所有环境的 web.confif 文件的部署包。在这里参考我的解决方案

希望这有助于并让您有信心继续自动化部署过程

于 2011-06-27T02:32:08.143 回答