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.
Other
212 stars 83 forks source link

List of Breaking/Planned changes for MSBuild.Locator v2.0 #282

Open YuliiaKovalova opened 4 months ago

YuliiaKovalova commented 4 months ago
  1. Remove extra property AllowQueryAllRuntimeVersions. AllowAllRuntimeVersions from VisualStudioInstanceQueryOptions.cs means the same, but can't clean up immediately due to backward compatibility.
  2. There is a request to add a warning message about the possible compatibility issues - sometimes MSBuild that is being loaded is just too old to have modern things. https://github.com/microsoft/MSBuildLocator/issues/272 & https://github.com/microsoft/MSBuildLocator/issues/130 Change API to...

    class MSBuildLocationResult
    {
    public bool IsCompatibleWithCurrentRuntime;
    public MSBuildLocatorWarning[] Warnings;
    public string RootPath;
    public MSBuildDiscoveryType Context;
    
    public Version Version;
    public Architecture Architecture; 
    
    public void Register() {}
    }
  3. https://github.com/dotnet/msbuild/issues/8166 - compatibility warning
  4. https://github.com/microsoft/MSBuildLocator/issues/254 - can be also a part of compatibility warning section
  5. https://github.com/microsoft/MSBuildLocator/issues/83 - find the way to implement this
  6. Add handling for the case described here: https://github.com/dotnet/msbuild/issues/9869#issuecomment-2007817375
  7. Handle the case for the versions clash: https://github.com/dotnet/msbuild/issues/10228
rainersigwald commented 4 months ago

After reading what you wrote above, I added a Version field to the result, which may actually supersede some of the warning stuff.