Перемещение файла в MSBuild с использованием относительного пути - PullRequest
6 голосов
/ 26 августа 2010

Я пытаюсь переместить все файлы определенного типа в каталог, относящийся к самому файлу, и мне интересно, возможно ли это с помощью MSBuild.

По сути, я использую Microsoft AJAX Minifierчтобы минимизировать все Javascript и CSS файлы на моем сайте.Это выводит файлы .min.js и .min.css в тот же каталог, что и файлы Javascript и CSS.Поскольку у моего сайта есть много скинов, есть файлы JS и CSS, расположенные во многих каталогах.Я хочу иметь возможность добавить задачу, которая запускается после AJAX Minifier, который перемещает все файлы .min.js и .min.css в / min / относительно расположения файла.Поэтому /Skin1/somescript.min.js будет перемещен в /Skin1/min/somescript.min.js, а /Skin2/somescript.min.js перейдет в /Skin2/somescript.min.js.

.единственный способ, которым я знаю, чтобы выполнить копирование / перемещение, требует знания абсолютного каталога (или я должен сказать каталог относительно файла проекта), но я не могу найти способ перемещения на основе каталога относительно файла I 'м движется.

Можно ли это сделать?

1 Ответ

12 голосов
/ 26 августа 2010
<CreateItem Include="wwwroot\**\*.min.js;wwwroot\**\*.min.css">
    <Output TaskParameter="Include" ItemName="FilesToMove" />
</CreateItem>

<Move SourceFiles="@(FilesToMove)" DestinationFiles="@(FilesToMove->'wwwroot\%(RecursiveDir)\min\%(Filename)%(Extension)')"/>

Предполагается, что вы используете задачу Move из Задачи сообщества MSBuild . Если нет, вы можете просто скопировать, а затем удалить оригиналы.

...