我们有一台 WinXP Jenkins 构建机器,我正在迁移到 64 位 Win-7 机器。我们正在使用 Wix 通过 MSBuild 构建 msi。所有这些项目都位于 TFS 中。我们正在获取 TFS 变更集编号,以便在每个项目中设置为当前构建。我们的许多 [projectname].wixproj 文件中的相关行如下所示:
<Target Name="BeforeBuild">
<MSBuild.Community.Tasks.Tfs.TfsClient ToolPath="C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE" Command="history /stopafter:1 /version:T /format:detailed /recursive $(ProjectDir)">
<Output TaskParameter="Changeset" PropertyName="Changeset" />
</MSBuild.Community.Tasks.Tfs.TfsClient>
<Message Text="TFS ChangeSetNumber: $(Changeset)" />
<PropertyGroup>
<DefineConstants>ChangesetNumber=$(Changeset)</DefineConstants>
</PropertyGroup>
</Target>
这在我们的 32 位机器上运行良好,但在新的 64 位机器上失败,因为 TF.EXE 的工具路径现在位于 c:\Program Files (x86)... 而不是 C:\program files... 我是试图找出一种方法来使这个工具路径变量,以便我们可以继续使用两台构建机器(现在),而无需将 wix 项目文件专用于其中一个或另一个(基本上不会破坏其中一台构建机器)。
这个 tf.exe 工具路径可以在 Jenkins 中在每台机器上轻松配置,但这不会传播到项目本身......除非有我不知道的路径变量?谢谢。