How to find the path to tf.exe from MsBuild
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=""$(VS100COMNTOOLS)..\IDE\tf.exe""/>
</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.
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, 2020Comments
-
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 over 10 yearsNot sure what changed, but my tf.exe is not located in the Tools folder, but the IDE folder.
-
sam yi over 10 yearsThis is where mine is. C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
-
James Woolfenden over 10 yearsThat's the path you get from the statement. Hence the ..\ide bit.
-
Mikal Madsen over 6 yearsSimilarly, 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"
-
Michal Ciechan over 6 years@MikalMadsen +1 Same Issue
-
JohnLBevan over 6 yearsNB: 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/…