我们正在使用 Teamcity 并使用 msbuild MSDeployPublish 目标部署我们的网站。这工作正常,但我们还想确保我们部署到的服务器上的应用程序池将“加载用户配置文件”设置为 true。
我们应该怎么做?
如果不能使用 MSDeployPublish,是否可以使用命令行步骤和 MsDeploy.exe 来完成?
我们正在使用 Teamcity 并使用 msbuild MSDeployPublish 目标部署我们的网站。这工作正常,但我们还想确保我们部署到的服务器上的应用程序池将“加载用户配置文件”设置为 true。
我们应该怎么做?
如果不能使用 MSDeployPublish,是否可以使用命令行步骤和 MsDeploy.exe 来完成?
使用 MSBuild是不可能的,但使用 MSDeploy 是可能的。
MSDeploy 不会让您直接指定设置,但它会让您备份应用程序池并将其应用到另一台服务器(如果有任何设置差异,它将修改设置)。
首先,您需要备份您的设置并将它们提交给 SVN:
msdeploy -verb:sync
-source:appPoolConfig="name of your apppool"
-dest:package="apppool.zip"
在编译期间,您需要将输出包同步到appppol 包中,因为清单提供程序不能包含 package/archivedir 提供程序:
msdeploy -verb:sync
-source:ApplicationPackage.zip
-dest:appool.zip
-skip:skipAction:Delete
(跳过会阻止部署从目标包中删除 appPoolConfig 提供程序)
注意:不要以相反的方式执行此操作(将 apppool.zip 转换为 ApplicationPackage.zip),因为它会删除您声明的所有参数,我不知道如何跳过它。
可能可以在生成之前将 apppool.zip 复制到 ApplicationPackage.zip 的“下方”(通过MsDeploySourceManifest
),因此它实际上是一步合并的,但在我有时间对其进行测试之前,我会将其作为练习留给您。
注意:如果您希望将文件放在目录中而不是 zip 文件中,也可以使用 dest:archivedir