正如 Hanselman 在他的Tiny Happy Features #3中提到的那样,我设置了以下构建目标来执行我的部署,并且在许多其他地方也提到了我认为推荐的方法:
msbuild my_web_application.csproj /p:Configuration=Production;
DeployOnBuild=true;
PublishProfile=Production;
VisualStudioVersion=11.0;
AllowUntrustedCertificate=true;
AuthType=NTLM
这完成了工作,并替换了我之前通过在命令行上调用 ms deploy 的部署步骤:
msdeploy.exe" -source:package="c:\source_to_my_web_application.zip" -dest:auto,my_server_name,includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"c:\source_to_my_web_application\Package.SetParameters.xml"
我在这两种方法中看到的最大区别是命令行调用只会推送有修改的文件,而 msbuild 调用每次都会推送整个 Web 应用程序。
有没有办法让 msbuild 版本执行“同步”行为,就像直接调用 msdeploy 为我做的那样?