使用MSBuild将Web部署到服务器

4

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

当我使用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

接着提供如何部署该包的信息。

我该如何通过命令行进行部署?我的最终目标是通过TeamCity运行部署,现在正在尝试正确设置命令行属性。但是,我现在只能从命令行创建部署包,而无法运行实际的部署。我该怎么做(最好使用一条语句,以复制从VS2012中部署时发生的情况)?

1个回答

5

因为您正在构建.csproj文件,所以您错过了一个重要的属性。

/p:VisualStudioVersion=11.0

这个属性是在MSBuild 4.5中引入的,以便在VS 2010和VS 2012之间方便地共享项目。缺点是,在构建.csproj时,您需要指定此属性的值。在构建解决方案文件时,该值可以从解决方案文件版本中推导出来。请阅读我的博客http://sedodream.com/2013/01/06/CommandLineWebProjectPublishing.aspx了解更多信息。


有点相关,我遇到了以下错误...“error MSB4044: 未为必需参数'SiteAppName'提供值的'ConcatFullServiceUrlWithSiteName'任务。”你有什么想法? - FlyingMaverick
@FlyingMaverick- 我也遇到了同样的问题,并在这里发布了我的解决方案:https://dev59.com/CGMl5IYBdhLWcg3wwZPc - Adrian Carr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接