很遗憾的告诉大家,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