How to find the path to tf.exe from MsBuild

27,849

Solution 1

Does the environment variable VS100COMNTOOLS point to the correct path for visual studio? E.g. VS100COMNTOOLS=C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\

So then all you need is $(VS100COMNTOOLS)..\IDE

<Target Name="Build">
   <Exec Command="&quot;$(VS100COMNTOOLS)..\IDE\tf.exe&quot;"/>
</Target>

or however you want to tidy it up.

The environment variable changes depending on the version of Visual Studio:

  • %VS110COMNTOOLS% - Visual Studio 2012
  • %VS120COMNTOOLS% - Visual Studio 2013
  • %VS140COMNTOOLS% - Visual Studio 2015

Solution 2

Seems they changed location again in Visual Studio 2017. It was not in any of the above locations on my machine.

I found TF.exe instead at:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

(Some users may find in the Professional folder instead of Enterprise folder: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe)

Apparently the environment variable is no longer set by default in VS 2017.

Share:
27,849
Chris Surfleet
Author by

Chris Surfleet

Hmm, so, about me. I've been programming since I was this high, professionally for the last 12 years. At the moment I work for Jewson UK Ltd as Lead Developer doing lots of big .net applications as well as being an occasional ScrumMaster. I also spend far too much of my time in the outdoors hiking, climbing and doing various other such unhealthy stuff.

Updated on July 09, 2020

Comments

  • Chris Surfleet
    Chris Surfleet almost 4 years

    I have an MsBuild file which shells out to TFS using tf.exe for a few things. Unfortunately the tf.exe file has been installed to different locations on the developer PCs and the build server.

    I could really do with a way of detecting where the tf.exe file is located within my script in the same way you can do $(MSBuildExtensionsPath32) etc. Is this possible?

    Thanks as always :)

  • Ben
    Ben over 10 years
    Not sure what changed, but my tf.exe is not located in the Tools folder, but the IDE folder.
  • sam yi
    sam yi over 10 years
    This is where mine is. C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
  • James Woolfenden
    James Woolfenden over 10 years
    That's the path you get from the statement. Hence the ..\ide bit.
  • Mikal Madsen
    Mikal Madsen over 6 years
    Similarly, for me it was "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Micros‌​oft\TeamFoundation\T‌​eam Explorer\TF.exe" ... However, Rider says "the specified path does not lead to a valid TF executable"
  • Michal Ciechan
    Michal Ciechan over 6 years
    @MikalMadsen +1 Same Issue
  • JohnLBevan
    JohnLBevan over 6 years
    NB: As of VS2017 (at least, certain editions), this environment variable no longer exists by default, and github.com/Microsoft/vsts-vscode/issues/269. However, you can create VS150COMNTOOLS by running: docs.microsoft.com/en-us/dotnet/csharp/language-reference/…