How to find the path to tf.exe from MsBuild
Asked Answered
P

2

30

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 :)

Purgative answered 8/8, 2011 at 7:39 Comment(0)
D
41

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
Drinking answered 8/8, 2011 at 8:41 Comment(4)
Not sure what changed, but my tf.exe is not located in the Tools folder, but the IDE folder.Samuels
This is where mine is. C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDESpall
That's the path you get from the statement. Hence the ..\ide bit.Drinking
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: learn.microsoft.com/en-us/dotnet/csharp/language-reference/…Stevens
W
15

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.

Wolfson answered 8/6, 2017 at 12:1 Comment(1)
Similarly, for me it was "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe" ... However, Rider says "the specified path does not lead to a valid TF executable"Siemens

© 2022 - 2024 — McMap. All rights reserved.