microsoft / MSBuildLocator

An API to locate MSBuild assemblies from an installed Visual Studio location. Use this to ensure that calling the MSBuild API will use the same toolset that a build from Visual Studio or msbuild.exe would.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DiscoveryType.VisualStudioSetup no longer works when upgrading to net60 explicitly targeting net60-windows/win-x64

siegfriedpammer opened this issue · comments

We are in the process of upgrading our test infrastructure to net60 and we are using MSBuildLocator.QueryVisualStudioInstances(new VisualStudioInstanceQueryOptions { DiscoveryTypes = DiscoveryType.VisualStudioSetup }) to get the location of msbuild.exe, which we need to perform out of process roundtrip testing of our decompiler (as can be seen here).

Could you please provide a Windows-specific build of this nuget package, which works with net60 and up and includes the FEATURE_VISUALSTUDIOSETUP features?

Either that, or:

  • Fail fast with a NotSupportedException if DiscoveryType.VisualStudioSetup or DiscoveryType.DeveloperConsole are used, stating the reason - I had to decompile the nuget package to understand what was going on,
  • Update the documentation and package description accordingly so that it says that (more than) half of the features are not available when using the nuget package with net or netcore
  • and provide guidance on how to get the functionality, if it is not/no longer available using this official package - this is especially important because the classic framework will fade away sooner or later, leaving us in this "broken" state.

Alternatively, %PROGRAMFILES%\dotnet\sdk<version>\ could simply include a runnable msbuild.exe for people, who need it. But I guess, this would be a request for the dotnet runtime repo. I am just wondering, why nobody at Microsoft thought this might be useful and included it out of the box.

Thank you very much!