如何配置MSBuild以使用已保存的发布配置文件进行Web部署?

时间:2011-02-03 18:42:30

标签: visual-studio-2010 msbuild msdeploy webdeploy

我使用Visual Studio创建发布配置文件。它将该信息保存到位于项目目录根目录下的MyProject.Publish.xml中。

我希望在我的CI服务器上执行的MSBuild任务将该文件用作其基本设置。理想情况下,如果我可以通过命令行参数覆盖属性,那就会摇滚。

这可能吗?如果是这样,语法是什么?

例如,我正在寻找类似的东西:

MSBuild MyProject.csproj /P:UsePublishProfile=True /P:UserName=deployUser /P:Password=MyPassword

1 个答案:

答案 0 :(得分:43)

我很遗憾地告诉您,VS2010使用的publish.xml文件并非旨在以这种方式使用。事实上,它甚至没有设计为与其他人签到/共享。

读取/写入这些文件的逻辑严格包含在Visual Studio中,而不能通过MSBuild获得。 所以今天没有直接的方法。当你调用msbuild.exe时,你必须传入各个属性名称/值。您可以在Team Build: Publish locally using MSDeploy看到我回答的类似问题,以获取更多信息。

VS 11开发者预览版的注意事项

您知道我们已经在即将推出的Visual Studio版本中解决了这个问题。您可以通过下载VS 11开发人员预览来查看。现在,所有配置文件都保存到自己的文件中(在“解决方案资源管理器”的“属性”节点中的“PublishProfiles”下)。它们现在设计为签入并与团队成员共享。这些文件现在是MSBuild文件,您可以根据需要自定义它们。要从命令行发布,只需传递DeployOnBuild = true并将PublishProfile设置为配置文件的名称。例如:

msbuild.exe MyProject.csproj /p:DeployOnBuild=true;PublishProfile=MyProfile