32

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

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

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

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

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

1 回答 1

43

很遗憾的告诉大家,VS2010 使用的 publish.xml 文件并不是设计成这样使用的。事实上,它甚至不是为了与他人签到/共享而设计的。

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

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

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

msbuild.exe MyProject.csproj /p:DeployOnBuild=true;PublishProfile=MyProfile
于 2011-12-29T04:52:50.313 回答