Skip to content

Invalid property name passed at the command line does not emit error #9475

@Forgind

Description

@Forgind

Issue Description

Specifying /p:Property:value instead of /p:Property=value leads to an aborted build when using dotnet build.

Steps to Reproduce

> dotnet new console
> dotnet build <csproj name> /p:UseRidGraph:false

Expected Behavior

One line for the MSBuild version followed by a line specifying that the property is not valid (MSB1006) then telling me which exactly was wrong like:
MSBuild version 17.9.0-dev-23579-01+5fcddc790 for .NET Framework
MSBUILD : error MSB1006: Property is not valid.
Switch: UseRidGraph:false

For switch syntax, type "MSBuild -help"

Actual Behavior

It just told me the version with no errors:
MSBuild version 17.8.3+195e7f5a3 for .NET

Analysis

I tried this with MSBuild.exe (from main, not 17.8.3), and it worked as expected. I tried dotnet MSBuild.dll with the MSBuild freshly built from main, and it worked as expected. I tried using MSBuild.exe from my VS preview (version 17.9.0-preview-23574-01+7b37a280a), and this bug still didn't reproduce. Then I built MSBuild main and used the deploy script to overwrite my 8.0.100 SDK, and this bug finally reproduced.

That means this may be Core-specific (a CLI bug?) or it may be specific to some component that MSBuild does not overwrite with the deploy script. Of note, it does still print out the version, which (I think) means MSBuild knows it's supposed to be executing and tries to execute but ultimately fails without logging anything further.

Versions & Configurations

8.0.100 SDK with MSBuild version above.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions