Как я могу скопировать файлы в середине сборки в Team System? - PullRequest
0 голосов
/ 10 ноября 2009

У меня есть два решения, которые я хочу включить в сборку. Решение два требует DLL из решения один для успешного построения. В решении два есть папка Binaries, в которую необходимо скопировать DLL из решения 1 перед сборкой решения 2.

Я пробовал цель AfterBuild, надеясь, что она скопирует элементы после первого SolutionToBuild, но потом не сработает. Я предполагаю, что он, вероятно, сработает после компиляции обоих решений, но это не то, что я хочу.

<SolutionToBuild Include="$(BuildProjectFolderPath)/../../Main/Framework.sln">
  <Targets>AfterCompileFramework</Targets>
  <Properties></Properties>
</SolutionToBuild>
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../../Dashboard/Main/Dashboard.sln">
  <Targets></Targets>
  <Properties></Properties>
</SolutionToBuild>

<ItemGroup>
  <FrameworkBinaries Include="$(DropLocation)\$(BuildNumber)\Release\Framework.*.dll"/>
</ItemGroup>
<Message Text="FrameworkBinaries: @(FrameworkBinaries)" Importance="high"/>

<Copy SourceFiles="@(FrameworkBinaries)" DestinationFolder="$(BuildProjectFolderPath)/../../../Dashboard/Main/Binaries"/>

1 Ответ

0 голосов
/ 23 ноября 2009

Объедините проекты из обоих решений в одно решение, затем добавьте ссылку project на зависимый проект. Копирование сборок теперь происходит автоматически.

Основной причиной решений является управление зависимостями сборки между проектами.

Я бы использовал два решения, когда я не хотел, чтобы разработка одного проекта влияла на разработку другого. В этом случае я бы вручную скопировал вывод из решений один и включил его в качестве зависимости для решения два при необходимости. Если вы хотите, чтобы выходные данные одного автоматически использовались в качестве входных данных для другого, вам лучше всего использовать одно решение.

...