asp.net – 如何使用命令行msbuild部署VS2012网站项目,而无需预编译?

前端之家收集整理的这篇文章主要介绍了asp.net – 如何使用命令行msbuild部署VS2012网站项目,而无需预编译?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我继承了一个非常大的VS2012网站项目(而不是Web应用程序),我试图自动化它的部署。在项目中有吨的循环引用,以便得到它预编译使用aspnet_compiler.exe我必须打开固定的名称。问题是,它导致构建在我的四核,16gb ram,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部署一个网站项目而不预先编译?

解决方法

对于网站项目,发布过程不会直接进入构建过程。对于网站项目,因为没有正式的构建过程,我们没有什么可以真正扩展。

注意:以下内容需要有VS 2012(或VS2010为此)和Azure SDK之上。这些特性不包括在VS2012的RTM下降中。

在VS中创建发布配置文件后,将创建以下内容

> App_Data / PublishProfiles下的发布配置文件(.pubxml文件)
>网站根目录下的website.publishproj

website.publishproj的目的是方便命令行发布。它是.csproj / .vbproj的一个填充,你通常在使用Web应用程序项目时会得到。

如果要自动发布,可以使用如下命令。

msbuild.exe website.publishproj /p:DeployOnBuild=true 
   /p:PublishProfile=<profile-name-no-extension> /p:VisualStudioVersion=11.0

您不必指定调用的目标。

关于VS中的消息,网站正在预编译,这是一个错误。它通过预编译运行,但发布使用配置文件中的设置。这个bug应该在Visual Studio Update 1修复。安装后,你不应该看到不必要的预编译步骤。请让我知道,如果你仍然看到。

猜你在找的asp.Net相关文章