如何在多个TFS构建脚本之间共享属性?

时间:2009-03-03 16:07:16

标签: tfs msbuild

我有3个构建脚本,可以创建分布式应用程序套件的独立组件。它们存储在如下文件夹结构中:

LegacyComponents - “直播”但正在被替换的VB6代码
NewComponents - 用C#重写组件
数据库
TeamBuildTypes
└LegacyBuild
└NewBuild
└DatabaseBuild

在每个构建文件夹中,我都有一个名为TFSBuild.proj的脚本。

因为构建是分开的,所以每个构建都有不同的构建号。我需要用一个字符串标记每个字符串,将它们连接在一起,以便我可以“获取”一个标签并拥有完整一致的代码集。

我使用KitNumber属性创建了一个名为KitNumber.targets的文件,并将其放在TeamBuildTypes文件夹中。然后我在每个构建脚本中添加以下行:

<Import Project=".\..\KitNumber.targets"/>

我现在应该可以在一个地方更改套件编号,并在每次构建中应用它。

这适用于我的开发盒,因为源已经从TFS中删除但在构建机器上失败,因为只有包含构建脚本的目录的内容被关闭。

那么我在哪里存储共享属性以便我可以在每个脚本中使用它?

1 个答案:

答案 0 :(得分:0)

使用包含我要应用的标签的单行文本文件:

<Target Name="ApplyKitNumberLabel" Condition="$(KitNumber) != ''">

  <ReadLinesFromFile File="$(WorkspaceRoot)\TeamBuildTypes\KitNumber.txt">
    <Output TaskParameter="Lines"
      PropertyName="KitNumber" />
  </ReadLinesFromFile>

  <Label TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
         Files="$(WorkspaceRoot)\$(BranchName)\LegacyComponents"
         Name="$(KitNumber)"
         Recursive="True" />

</Target>