64 ビットの Win-7 マシンに移行中の WinXP Jenkins ビルド マシンがあります。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>
TF.EXE のツールパスが C:\program files ではなく c:\Program Files (x86)... にあるため、これは 32 ビット マシンでは問題なく動作しますが、新しい 64 ビットでは失敗します。このツールパス変数を作成して、wix プロジェクト ファイルをどちらか一方専用にすることなく (基本的にビルド マシンの 1 つを壊すことなく) 両方のビルド マシンを引き続き使用できるようにする方法を見つけようとしています。
この tf.exe ツールパスは、マシンごとに Jenkins で簡単に構成できますが、これはプロジェクト自体には反映されません...私が認識していないパス変数がない限り? ありがとう。