Я пытаюсь создать проект msbuild, в котором информация о зависимости читается из текстового файла. У меня есть текстовый файл с именем project.dep, который содержит разделенный точкой с запятой список имен проектов. В этом примере файл содержит a; b; c; d
Я ожидал, что приведенный ниже код сгенерирует два идентичных списка предметов:
<PropertyGroup>
<from_file>$([System.IO.File]::ReadAllText($(ProjectName).dep))</from_file>
<inline>a;b;c;d</inline>
</PropertyGroup>
<ItemGroup>
<from_file_items Include="$(from_file)" />
<inline_items Include="$(inline)" />
</ItemGroup>
<Target Name="Test">
<Message Text="file: @(from_file_items->'%(filename).item')" />
<Message Text="inline: @(inline_items->'%(filename).item')" />
</Target>
Но результат другой:
Test:
file: a;b;c;d.item
inline: a.item;b.item;c.item;d.item
Это не то, что я ожидал. Мне нужно сопоставить каждое имя в файле с отдельным элементом. Есть идеи?