-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Acquisition story for Sdks #1436
Comments
IMHO, the acquisition story should be-
|
I'm not saying NuGet should be the distribution mechanism... But if that's what you go with, here's a feature that could be useful: <metadata>
<packageTypes>
<packageType name="MsBuildSdk" version="15.1.0" />
</packageTypes>
</metadata> |
For what it's worth, I don't think SDKs should be distributed as NuGet packages; this just seems like it is bending the NuGet technology just a little too far from its standard uses for my taste. In addition, if a project's SDK is missing, and therefore the project cannot be properly evaluated, it creates a chicken-and-egg issue if the project itself (directly or indirectly) contains logic to locate and download the SDK (such as a On the other hand, I completely agree that we need a way to install a third-party SDK. In my opinion, it should be as simple as a folder in some central location where SDKs can be installed. As to how the folder containing the SDKs should be located, I have two ideas:
I was thinking on how to use custom SDKs for my closed-source .NET Core development, and currently the only way I can integrate a custom SDK is to build all of the .NET Core SDK from source, and therefore creating a |
Please do not require SDKs to be centrally installed as the only mechanism for locating them. NuGet brings two huge benefits:
|
@jnm2 I'm afraid I wasn't quite clear above. I am not advocating for the SDKs to be installed in a central location for the computer (or the build server). What I was asking for was that I could list the SDKs and their versions in a |
Also, my comment about NuGet being a bad idea for acquiring SDKs above is, after giving it more thought, incorrect. NuGet can and should be used to download files for an SDK. What I was contemplating when I wrote that was @natemcmaster's idea that we should use custom NuGet infrastructure to indicate that a package is an SDK. What I would do is keep the SDK files in a subdirectory of the package (similarly to what we do today with |
I just pointed folks to this issue yesterday (sorry!), but I'm going to close it in favor of #1493, which has the current proposed design and answers some of the questions posed here. Specifically, what @wjk mentioned is covered by the (incomplete) idea of "lineups". Answering "what differentiates an Sdk from a normal NuGet package?" is covered by #1439. |
Mentioning here too, the WinObjC project https://github.com/Microsoft/WinObjC just switched to use NuGet as our SDK distribution mechanism so I'm in favor of something along those lines for a formal MSBuild third party SDK mechanism. @wjk @natemcmaster |
As of MSBuild 15.1 RC2, to be usable in a project file, an Sdk must be "installed" into a specific directory for MSBuild to find. This means that the possible Sdks are limited to what ships with MSBuild's install mechanism--today, generally Visual Studio or dotnet CLI.
A third party should be able to build an Sdk, and "non-core" Sdks should be acquirable via some mechanism. Ideally, the only difference between the "core" Sdks and an arbitrary Sdk is time-of-download.
This presents a number of challenges. See most of the discussion on #1392 and #1423.
The text was updated successfully, but these errors were encountered: