Skip to content

Better error message for malformed item transformations #333

@cdmihai

Description

@cdmihai

A definition of an item ThisItem

<ItemGroup>
    <ThisItem Include="@(AnotherItem->$(APath)\%(Filename)%(Extension))" />
</ItemGroup>

Followed by a usage of ThisItem of the form:

%(ThisItem.FullPath)

Fails with the error: error MSB4023: Cannot evaluate the item metadata "%(FullPath)". The item metadata "%(FullPath)" cannot be applied to the path "@(AnotherItem->c:\projects\msbuild\bin\Debug-NetCore\Windows_NT_Deployment_Test)". Illegal characters in path".

The error is currently caught when the malformed item is used, not when the malformed item is created. Instead, the error should be caught at item definition with a text mentioning the missing single quotes (correct definition is "@(AnotherItem->'$(APath)%(Filename)%(Extension)')")

Metadata

Metadata

Assignees

No one assigned

    Labels

    User Experiencehelp wantedIssues that the core team doesn't plan to work on, but would accept a PR for. Comment to claim.triaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions