Open AR-May opened 2 years ago
We should do this ASAP because it massively improves the user experience for SDK resolution in scenarios like https://github.com/NuGet/Home/issues/13471 - adding this data would effectively remove the workload and 'normal' SDK resolvers from the list of resolvers used for NuGet SDK resolution, leaving only the most likely error messages.
Specifically:
Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver
we need to add the line <ResolvableSdkPattern>Microsoft.NET.SDK.WorkloadAutoImportPropsLocator|Microsoft.NET.SDK.WorkloadManifestTargetsLocator</ResolvableSdkPattern>
to the existing xml file.Microsoft.DotNet.MSBuildSdkResolver
we don't seem to create such an xml file and the story is a bit more muddled. This resolver seems to orchestrate a few other resolvers? So we'd need to create a regex with the superset of all of the expected names for the 'nested' resolvers (which right now looks like the workload resolver and the 'normal' SDK path resolver?).
Is your feature request related to a problem? Please describe.
This feature improves performance. MSBuild would skip loading additional assemblies with sdk resolvers when they are not needed.
Describe the solution you'd like
After merging this msbuild PR it is possible to add
<ResolvableSdkPattern>
to manifests of msbuild sdk resolvers. Consider to use it for resolvers Microsoft.DotNet.MSBuildSdkResolver and Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver which live in this repo.Note that further we would need to keep the pattern up to date. Suggested pattern is
Microsoft\.NET.* | <some exceptional cases>
Additional context
See this page for more details about sdk resolution and the recent change of the algorithm in MSBuild.