如何在TFS中合并时保护VB.Net项目设置?

时间:2014-08-14 18:29:48

标签: vb.net tfs2010 branching-and-merging cloaking

在我的方案的简化版本中,我正在开发一个使用ClickOnce部署的VB.Net应用程序,其中包含用于生产代码的Live分支,以及用于工作的Dev分支。

我想将每个分支部署到不同的位置(live for release和dev for testing),但是将任一分支合并到另一个分支会导致项目的“Publish location”设置被覆盖在目标分支中,这意味着我可能会意外地将开发代码发布到实时位置。

有没有办法让某些项目属性(在这种情况下,发布位置)从合并“免疫”,所以每个分支都保持它的设置?

编辑: 我的第一个想法是,如果有一些“配置”类型文件可以覆盖某些项目设置,我可以隐藏该文件,以便它不会被合并...但我找不到任何像这样的文件的引用。 / p>

我们使用TFS进行源代码管理。

1 个答案:

答案 0 :(得分:0)

通过学习如何使用MSBuild Conditions来解决。

通过编辑.vbproj文件并将有问题的属性放入条件PropertyGroup,我可以自由地来回合并分支,并且根据.vbproj文件的目录(分支),它将使用一个价值或其他。

(要编辑项目文件的xml,右键单击解决方案资源管理器中的项目>卸载项目,然后右键单击>编辑App.vbproj。)

...
<PropertyGroup Condition ="$(MSBuildThisFileFullPath.Contains(\AppDev\App\App.vbproj))">
    <AssemblyName>AppDev</AssemblyName>
    <PublishUrl>http://server/client/AppDev/</PublishUrl>
  </PropertyGroup>
  <PropertyGroup Condition ="$(MSBuildThisFileFullPath.Contains(\AppLive\App\App.vbproj))">
    <AssemblyName>App</AssemblyName>
    <PublishUrl>http://server/client/App/</PublishUrl>
  </PropertyGroup>
...