Конфигурация MSBUILD: копирование вывода в промежуточную область - PullRequest
3 голосов
/ 26 октября 2009

Хорошо, я не лучший в MSBUILD. На самом деле, я ничего не знаю. Мне нужна помощь в настройке файла решения, чтобы MSbuild скопировал скомпилированный вывод в промежуточную область. Решение имеет около 35 проектов. Все, что мне нужно, это около 5 из них для копирования в промежуточную папку в режиме выпуска. Пожалуйста, предположите, что я ничего не знаю ...

Спасибо

1 Ответ

5 голосов
/ 26 октября 2009

Вы можете создать цель, которая выглядит следующим образом:

  <Target Name="CopyFiles" DependsOnTargets="YourBuildTargets">
    <CreateItem Include="YourSolutionPath\bin\$(Configuration)\*.*">
      <Output ItemName="YourProjectOutputFiles" TaskParameter="Include"></Output>
    </CreateItem>

    <Copy SourceFiles="@(YourProjectOutputFiles)" DestinationFolder="$(DestinationFolder)"></Copy>
  </Target>

Это создаст цель с именем CopyFiles, которая зависит от выполнения YourBuildTargets (Вы можете поместить туда несколько зависимостей, разделенных точками с запятой). Он описывает элемент, который включает в себя все файлы (*. *) В каталоге проекта. Затем он запускает команду Copy и копирует файлы, описанные элементом, в папку назначения. Если у вас есть много проектов, все строящихся по одному сценарию MSBuild, у вас будет узел CreateItem для каждого проекта для индексации файлов и соответствующий узел Copy для выполнения копирования.

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

Теперь просто включите цель CopyFiles в список целей, создаваемых вашим сценарием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...