システムが 64 ビットかどうかは、ProgramW6432
環境変数を調べることで確認できます。
また、ユーザーが既定のインストール パスを選択している限り、VS2012 の場合でも、TF.exe は Visual Studio の 32 ビット部分にインストールされたままになります。したがって、探す必要があるのは、ユーザーが 2012 または 2010 をインストールしているかどうかだけです。それは次の条件で可能になるはずExists
です:
<PropertyGroup>
<ProgramFiles32 Condition="$(ProgramW6432) != ''">$(PROGRAMFILES) (x86)</ProgramFiles32>
<ProgramFiles32 Condition="$(ProgramFiles32) == ''">$(PROGRAMFILES)</ProgramFiles32>
<VS10Dir>$(ProgramFiles32)\Microsoft Visual Studio 10.0</VS10Dir>
<VS11Dir>$(ProgramFiles32)\Microsoft Visual Studio 11.0</VS11Dir>
<TF Condition="Exists('$(VS10Dir)')">"$(VS10Dir)\Common7\IDE\TF.exe"</TF>
<TF Condition="Exists('$(VS11Dir)')">"$(VS11Dir)\Common7\IDE\TF.exe"</TF>
</PropertyGroup>
...
<Exec Command="$(TF) checkout ..."></Exec>