dotnet / dotnet/msbuild

Adding a custom SDK resolver

Open
#2,278 14 comments 0 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

**Problem**
The default SDK resolver loading only looks for resolvers in $(MSBuildToolsDirectory32)/SdkResolvers ([source][source-link]).

[source-link]: https://github.com/Microsoft/msbuild/blob/7b9ebbae516f7a9b19e6b4de195a648073bf3ab9/src/Build/BackEnd/Components/SdkResolution/SdkResolverLoader.cs#L24

Most of the time, this path is going to be `C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\SdkResolvers`. Writing files here requires admin permissions.

_My scenario:_ I'm looking for a way to share a common set of targets and props across ASP.NET Core's 500+ csproj files, which are scattered among repos. We've tried PackageReference, but continually run into limitations. I've written and tested a custom SDK resolvers. It seems promising, but there is no easy way to make this available for MSBuild for VS and dotnet.exe without getting elevated permissions to write into the VS folder and/or `C:\Program Files\dotnet` folder.

**Request**
Provide a way to register custom SDK resolvers without needing to write into the MSBuild tools folder.

**Ideas**

- Similar to ``, add `` directive that takes an assembly path.
- Add another search path, such as $(MSBuildUserExtensionsPath)/$(MSBuildRuntimeType)/SdkResolvers

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.