-1

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

我想将这些分支中的每一个部署到不同的位置(用于发布,开发用于测试),但是将任一分支合并到另一个会导致项目的“发布位置”设置在目标分支中被覆盖,这意味着我可能会不小心将开发代码发布到实时位置。

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

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

我们使用 TFS 进行源代码控制。

4

1 回答 1

0

通过学习如何使用MSBuild 条件解决。

通过编辑 .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>
...
于 2014-08-20T18:55:23.367 回答