Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open
#152 6 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
csharp

Research direction

Start with MSBuildLocator.QueryVisualStudioInstances and the DiscoveryType.VisualStudioSetup and DiscoveryType.DeveloperConsole paths, then compare behavior when targeting net60, net60-windows, and win-x64. The issue is resolved when supported functionality is available in an appropriate package, or unsupported discovery fails clearly and the package documentation explains the limitation and alternatives.

Written by the indexing model from the issue text.

Description

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!

Dominant language
C#
Stars
262
Forks
91
Avg merge
11d 22h
Merged PRs (30d)
3

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/MSBuildLocator

All issues in microsoft/MSBuildLocator

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.