MSBuildLocator finds instance only in net-framework
baruchiro opened this issue · 7 comments
I try to load a Microsoft.Build.Evaluation.Project
in my project. When I compile my project in netcoreapp2.1
the Project
didn't loading because MSBuild not loaded.
The code var vsInstances = MSBuildLocator.QueryVisualStudioInstances();
return one instance when it compiled to net471
, but return 0 instances when it compiled to netcoreapp2.1
.
Maybe it related to #21 or #30, I didn't know. I'm still getting to know the working way and MSBuild's special cases.
I see code like this:
https://github.com/Microsoft/MSBuildLocator/blob/9c3c8dc23677041b6a23919b14a495dcdd5d7c8d/src/MSBuildLocator/MSBuildLocator.cs#L308-L323
It seems like when we compile with .Net Core we assume that there is no Visual Studio? Or that we don't need to search him?
For my case, I actualy need the Visual Studio when I compile to .Net Core.
And if I remove the netcoreapp2.0
from TargetFrameworks
in the Microsoft.Build.Locator.csproj
, and run the BuilderApp
with only netcoreapp
, it identifies the VS.
What version of MSBuildLocator are you using?
You can't use Visual Studio MSBuild from a .NET Core app; the core MSBuild implementation is very similar but tasks and targets differ--there's no guarantee that a project that works in VS will even load in Core, much less build.
Do you plan to add .net core
support?
Support for finding and using MSBuild from a .NET Core SDK in a .NET Core application was added in #51.
We don't plan to have any kind of support for finding and using MSBuild from a Visual Studio instance in a .NET Core application.
Too bad.
I try every possible way to find a way to work with project files (.*proj
).
@rainersigwald Ok, so VS 2022 still creates a project targeting net472 when I choose "Stand-Alone Code Analysis Tool" template. I would like to switch the project to net6.0, what is the suggestion?