Skip to content
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

Publish Sdk package for Common props/targets #1686

Open
rainersigwald opened this issue Feb 9, 2017 · 3 comments
Open

Publish Sdk package for Common props/targets #1686

rainersigwald opened this issue Feb 9, 2017 · 3 comments
Labels
Milestone

Comments

@rainersigwald
Copy link
Member

In the v14 extensibility model, MSBuild distributed many props and targets as part of its own installer, SDK authors installed files into known locations, and project files imported props and targets using paths relative to the MSBuild install root.

With the advent of Sdks, projects no longer need to specifically specify a path but can address an Sdk by name and version. However, Sdks that wish to opt into common functionality (i.e. all Sdks) still import the core MSBuild targets by the old mechanism that assumes they are next to MSBuild, for example:

<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />

Instead, MSBuild could publish a "Core Sdk" containing a copy of these files, and Sdks could explicitly depend on a versioned copy.

That has two effects, after Sdk version identification is complete:

➕ An Sdk version reference is stable and should work identically on different MSBuild engines (barring changes in behavior).
➖ Merely updating to a new CLI/MSBuild doesn't get you the latest bugfixes/extensibility points from new common targets.

@rainersigwald
Copy link
Member Author

I was talking to someone about this offline, but I've forgotten who. @piotrpMSFT, maybe?

@Nirmal4G
Copy link
Contributor

Nirmal4G commented Feb 26, 2018

I had done similar in my project! Here's the link if you're interested: MSBuild.Common.Sdk folder in MSBuild-Sdks repo.

I wanted a single build tools kit for all my projects and I was inspired by .NET SDK and MSBuild.Sdk.Extras!

Note:

  • All I did was refractor the old stuff and add some new stuff that was due for MSBuild, required to make it work for me! I'm still learning MSBuild, so, it may not be what you expect.
  • The MSBuild.NET.Legacy.Sdk project was just an experiment to redirect the legacy props/targets to the Sdk package. The other packages are also an experiment to learn the old-stuff and try-out new stuff!

@cdmihai
Copy link
Contributor

cdmihai commented Apr 19, 2018

Thank you @Nirmal4G for sharing your sdks!
@jeffkl created the following repository for msbuild sdks: https://github.com/Microsoft/MSBuildSdks. Feel free to contribute.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants