MSBuild для копирования вывода проекта зависимости в другую папку - PullRequest
4 голосов
/ 02 августа 2011

У меня есть проект, у которого есть пара зависимостей проекта, я хочу выбросить вывод (dll) двух зависимых проектов в другую папку, но, похоже, он не работает.Вот что у меня есть, что-то не так?

<ItemGroup>
  <ProjectReference Include="..\..\a\a.csproj">
    <Project>{xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}</Project>
    <Name>Client</Name>
  </ProjectReference>
  <ProjectReference Include="..\..\b\b.csproj">
    <Project>{yyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy}</Project>
    <Name>Server</Name>
  </ProjectReference>
</ItemGroup>
<Target Name="BuildOtherProjects">
  <MSBuild Projects="@(ProjectReference)" Targets="Build">
    <Output TaskParameter="TargetOutputs" ItemName="DependentAssemblies" />
  </MSBuild>
  <Copy SourceFiles="@(DependentAssemblies)"   DestinationFolder="$(OtherBuildLocation)\Build\Output" SkipUnchangedFiles="true" />
</Target>

1 Ответ

0 голосов
/ 26 января 2012

Во-первых, в какой момент он терпит неудачу?Попробуйте отладить то, что у вас есть, с помощью нескольких задач с сообщениями, которые имеют значение priority = "high" (чтобы обеспечить их видимость в выходных данных).Первая проверка, которая приходит на ум, заключается в том, что на самом деле находится в группе элементов DependentAssemblies после задачи MSBuild?

Если вы делаете то, что я думаю вы пытаетесь сделать, тоПолучите все зависимости в одном каталоге, возможно, для развертывания, тогда вы рассматривали вместо этого вывод всех проектов в один и тот же каталог?OutDir и OutputPath - это два свойства, которые вы можете использовать.

...