我继承了一个非常大的 VS2012 网站项目(不是 Web 应用程序),并且正在尝试自动化它的部署。项目中有大量循环引用,因此要使用 aspnet_compiler.exe 对其进行预编译,我必须打开固定名称。问题在于它会导致在我的四核、16gb 内存、ssd 开发人员机器上构建大约需要 20 分钟。以前的开发人员不必处理这个问题,因为他只需将整个源代码复制到生产 Web 服务器。
因此,在我解决循环引用问题之前,我想至少使用 msdeploy 自动部署项目。我可以在 Visual Studio 中使用发布配置文件,它完全符合我的要求:
- 构建引用的 DLL 并将它们添加到项目中。
- web.config 是否转换。
- 甚至不尝试构建网站,而只是为我打包成一个 zip 文件。
我一生无法弄清楚的是如何让 MSBuild.exe 做同样的事情!
MSBuild.exe WebProject.vs2012.sln /m /T:Build
/p:Configuration=Release`;DeployOnBuild=true`;PublishProfile=TestDeploy
上面的命令仍然尝试执行 aspnet_compiler 这不是我想要的。发布配置文件说它不应该被预编译......但在日志中我看到它正在执行它。
那么:如何在不预编译的情况下使用 msbuild 部署网站项目?