Add environment variables for every tool/software folder location #11020
prlcutting
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
One issue I often encounter is knowing where to reliably find the various tools on a runner image, e.g.:
msbuild.exe
so that I can use it in a PowerShell script?makeappx.exe
,signtool.exe
, etc.azcopy.exe
?Oftentimes, half of my
azure-pipelines.yml
file is filled trying to figure out where these things are, or (re-)downloading them from the internet because it's easier to control and know their location than trying to find it on the runner image. E.g., downloadvswhere.exe
from a known URL, run it with numerous parameters to find MSBuild so that I can call MSBuild from a PowerShell script.It would be great if environment variables were defined for all tools installed on a runner image that indicate the location of each tool. This could include variables to "main" software like Visual Studio, and "child" software like all the various tools/scripts that get installed with Visual Studio that might be in numerous different subfolders or locations, e.g., MSBuild.
For software/tools that have multiple versions installed, the environment variables should include a version, e.g., for the Windows SDKs. It would also be helpful to have an environment variable that points to the latest Windows SDK version, which would "float" as new versions are released. I'm using the Windows SDK as an example, but the recommendation would apply to any software that has multiple versions.
Such environment variables would of course have to be documented in the Microsoft Docs so that they're easy to find.
Alternatively, or perhaps additionally, some of these key folder locations could be added to the
PATH
environment variable to make them easier to use. If there's a reason not to do that, then the environment variable approach would suffice and be a big improvement.I cannot tell you have many hours I've wasted scouring the internet for various tools trying to figure out a way to programmatically find out where some tool is installed. It would be amazing as a consumer of a runner image if this were done for me, and I could just use the tool that I want. That would be a much better developer experience.
Thanks for considering this.
Beta Was this translation helpful? Give feedback.
All reactions