2013-01-09 74 views
4

我在VS 2012项目中设置了发布配置文件。当我在VS中右键单击项目时,选择发布并单击[发布]按钮,它会使用发布配置文件中提供的设置将项目发布到服务器。使用MSBuild部署到服务器

当我使用的MSBuild和命令行,语法如下:

msbuild.exe .\mvc.csproj /p:PublishProfile=DevServer 
/p:DeployOnBuild=True /p:Password=MyPassword /p:AllowUntrustedCertificate=true 

然后生成项目,并给我一个消息:

包“mvc.zip”是在以下位置成功创建为单个文件:file:/// c:/ code/mvcsite/obj/Debug/Package

然后提供有关如何部署packag即

如何从命令行部署?我的最终目标是通过TeamCity运行部署,并且现在正试图让我的命令行属性正确。但是,我现在可以从命令行完成的大部分工作是创建部署包,但不能运行实际部署。我怎样才能做到这一点(最好是用一条语句,当我从那里部署时,重复在VS2012中发生的事情)?

回答

5

既然你正在构建的.csproj的你错过

/p:VisualStudioVersion=11.0 

此属性,而4.5的MSBuild介绍,以方便VS 2010和VS 2012的缺点之间共享项目一个重要的财产;在构建.csproj时,您需要指定此属性的值。在构建解决方案文件时,可以从解决方案文件版本中获取该值。阅读更多在我的博客http://sedodream.com/2013/01/06/CommandLineWebProjectPublishing.aspx

+0

有点关系,我得到以下错误... “错误MSB4044:在‘?ConcatFullServiceUrlWithSiteName’任务没有给予必要的参数值‘SiteAppName’ 想法 – FlyingMaverick

+0

@ FlyingMaverick-我就遇到了这个同样的事情,并张贴我的解决方案在这里:http://stackoverflow.com/questions/18152391/iis-webdeploy-using-ms-build-fails-with-error-msb4044-concatfullserviceurlwiths/ –