dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.7k stars 1.06k forks source link

[7.0.2xx] Change Global Property Flow to Not Flow Publish* Properties #28645

Open nagilson opened 2 years ago

nagilson commented 2 years ago

Per https://github.com/dotnet/sdk/pull/28628, we would like to make a better fix for this as some publish properties should likely not be flowing into libraries. We would like to create a list of these properties to check in RuntimeIdentiferInference.targets (SelfContained, PublishAsSingleFile, etc, and PublishSelfContained once that's merged.)

Then we will check against that list instead of having them hardcoded.

At the same time, we will need to flow that list into MSBuild and add a check to see if that list exists, because MSBuild can run with SDKs besides the .NET SDK. If the list does exist, we will need to undefine the properties in a grand total of 3 locations as reflected in this PR: https://github.com/dotnet/msbuild/pull/6924

We aren't doing this fix for 7.0.1xx GA because it's too risky, so doing it in 7.0.2xx.

cc @dsplaisted @rainersigwald

dotnet-issue-labeler[bot] commented 2 years ago

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

rainersigwald commented 2 years ago

One thing to think about is the solution build--if we unconditionally remove these from p2p refs, we'll be recreating the rid-in-solution thing (https://github.com/dotnet/sdk/pull/828#issuecomment-279487202), where I think things like PublishSelfContained aren't unreasonable to specify for a solution build.

dsplaisted commented 2 years ago

We would want to block the flow of these properties to Rid Agnostic projects. If a project accepts a RuntimeIdentifier, then these properties would also flow.