Я пытаюсь создать группу элементов задачи «Файлы» с атрибутом метаданных «TargetPath», заполненным относительным путем к файлу.ItemGroup с пользовательскими метаданными в отношении файлов
Пример:
Для этих путей:
D: \ Test \ Blah.exe
D: \ Test \ Config \ fun.config
D: \ Test \ EN-US \ мой .resources.dll
Вывод должен быть:
Target File = Blah.exe
File Target = Config \ fun.config
File Target = EN-US \ my.resources.dll
Вот моя лучшая попытка ... надеюсь, это делает мой вопрос яснее:
<ItemGroup>
<Files Include="d:\test\**\*" >
<TargetPath>%(RecursiveDir)%(Filename)%(Extension)</TargetPath>
</Files>
</ItemGroup>
<Message Text="File Target = @(Files->'%(TargetPath)')"/>
Я бы хотел, чтобы «TargetPath» заполнялся правильно ... в настоящее время он кажется пустым или пустым. Кто-нибудь знает, что мне не хватает?
Edit:
Да, я понимаю, что я могу это сделать:
<Message Text="File Target = @(Files->'%(RecursiveDir)%(Filename)%(Extension)')"/>
Однако я строю эту ItemGroup использовать задачу ResolveManifestFiles MSBuild, который требует, чтобы я создать объект TaskItem с атрибутом метаданных TargetPath, чтобы иметь возможность настроить это значение.
я вижу, что, тем не менее, я пытаюсь использовать другую задачу, которая опирается на TaskItems я перехожу к нему, чтобы иметь этот атрибут метаданных –
См мой ответ обновления - надеюсь, что это поможет. – KMoraz