Скопируйте структуру каталогов из списка файлов с помощью MSBuild

Это немного сложнее, чем копирование структуры, поэтому отдельный вопрос.

У нас есть эта группа элементов, которая представляет собой набор копируемых файлов.

<ItemGroup>
   <FilesToBeCopied Include="
       C:\SomeFolder\a.exe;
       C:\SomeFolder\d.dll;
       C:\SomeFolder\AFolder\*;
       C:\SomeFolder\e.dll;
       C:\SomeFolder\some.xml;>
   </FilesToBeCopied>
</ItemGroup>

Нам нужна задача копирования, что-то может быть похоже на строку ниже

<Copy SourceFiles="@(FilesToBeCopied)" DestinationFolder="bin\%(FilesToBeCopied.RecursiveDir)" SkipUnchangedFiles="true"/>

Итак, необходимая окончательная структура:

somelocation\bin\a.exe; 
somelocation\bin\d.dll;
somelocation\bin\AFolder\*;
somelocation\bin\e.dll;
somelocation\bin\some.xml;

Есть ли способ добиться этого? Поскольку приведенный выше оператор копирования копирует все файлы в папку bin \ folder и не создает структуру AFolder * внутри bin.


person dushyantp    schedule 23.04.2015    source источник


Ответы (1)


Оказалось, что исправить это было довольно просто. Просто используйте группу элементов с подстановочными знаками ** вокруг папки.

<ItemGroup>
   <FilesToBeCopied Include="
       C:\SomeFolder\a.exe;
       C:\SomeFolder\d.dll;
       C:\SomeFolder\**\AFolder\**;
       C:\SomeFolder\e.dll;
       C:\SomeFolder\some.xml;>
   </FilesToBeCopied>
</ItemGroup>
person dushyantp    schedule 27.04.2015