-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Outer build of multitargeted projects doesn't respect WarningsNotAsErrors #10873
Copy link
Copy link
Open
Labels
Area: Common TargetsPriority:1Work that is critical for the release, but we could probably ship withoutWork that is critical for the release, but we could probably ship withouttriaged
Description
The promotion of the "plain property" version of some warning-related settings:
msbuild/src/Tasks/Microsoft.Common.CurrentVersion.targets
Lines 668 to 672 in 69b3e7a
| <PropertyGroup> | |
| <MSBuildWarningsAsMessages Condition="'$(MSBuildWarningsAsMessages)'==''">$(NoWarn)</MSBuildWarningsAsMessages> | |
| <MSBuildWarningsAsErrors Condition="'$(MSBuildWarningsAsErrors)'==''">$(WarningsAsErrors)</MSBuildWarningsAsErrors> | |
| <MSBuildWarningsNotAsErrors Condition="'$(MSBuildWarningsNotAsErrors)'==''">$(WarningsNotAsErrors)</MSBuildWarningsNotAsErrors> | |
| </PropertyGroup> |
Is in Microsoft.Common.CurrentVersion.targets, which is not imported into multitargeting outer builds--only the inner builds. This means that any warnings raised in the outer build (like in NuGet operations) may be promoted to error even if $(WarningsNotAsErrors) includes them.
This is very related to #10877 and we should consider fixing both by looking at the unprefixed versions in the engine (if the prefixed version is unset) rather than requiring XML logic to do it.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Area: Common TargetsPriority:1Work that is critical for the release, but we could probably ship withoutWork that is critical for the release, but we could probably ship withouttriaged