dotnet / msbuild

The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
https://docs.microsoft.com/visualstudio/msbuild/msbuild
MIT License
5.23k stars 1.35k forks source link

Document the import order of the common msbuild extension points. #2767

Open cdmihai opened 6 years ago

cdmihai commented 6 years ago

It is not clear to users how the import order looks like, considering that there are implicit top and bottom imports for:

Users need to know how to compose all three of these entities to achieve the import ordering that they want.

Nirmal4G commented 5 years ago

Current (upto v17) Import Order, with and without the SDK-style

Microsoft.Common.props

.NET SDK props

Project File

.NET SDK targets

Microsoft.\.targets

Microsoft.Common.targets

Note: The Xaml, CSharp, VisualBasic, FSharp targets wrap around Common targets and have similar extension points. I didn't include the imports of the inbox targets for simplicity. You can use MSBuild Log Viewer to inspect your own projects' imports.

Nirmal4G commented 5 years ago

So, How will we put the above monstrosity into docs and make people understand them easily?

cdmihai commented 5 years ago

Thanks for looking it up. Can you create a PR and add them to https://github.com/microsoft/msbuild/tree/master/documentation? The binlog viewer should also aid users in understanding the import order.

Nirmal4G commented 5 years ago

OK. Will do.