dotnet/msbuild

Better error message for malformed item transformations

Open

#333 opened on 2015年11月5日

GitHub で見る
 (2 comments) (0 reactions) (0 assignees)C# (1,364 forks)batch import
User Experiencehelp wantedtriaged

Repository metrics

Stars
 (5,062 stars)
PR merge metrics
 (平均マージ 11d 7h) (30d で 125 merged PRs)

説明

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)')")

コントリビューターガイド