Я пытаюсь создать группу элементов задачи «Файлы» с атрибутом метаданных с именем «TargetPath», заполненную относительным путем к файлу.
Пример:
Для этих путей:
D: \ Test \ Blah.exe
D: \ Test \ Config \ fun.config
D: \ Test \ en-US \ my.resources.dll
Выходные данные должны быть:
File Target = Blah.exe
File Target = Config \ fun.config
Файл 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, чтобы иметь возможность настроить это значение.