MSBuild将依赖项目的输出复制到另一个文件夹中

时间:2011-08-02 18:32:11

标签: msbuild msbuild-task

我有一个项目有几个项目依赖项,我想将两个依赖项目的输出(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 :(得分:0)

首先,它在什么时候失败了?尝试使用设置为importance =“high”的一些消息任务来调试您所拥有的内容(以确保它们在输出中的可见性)。想到的第一个检查是在MSBuild任务之后的DependentAssemblies ItemGroup中实际存在的内容吗?

如果您正在做我想做的事情但您尝试做的事情,就是将所有依赖项放到一个目录中,也许是为了部署,然后你考虑过将所有项目输出到同一目录吗? OutDir和OutputPath是您可以使用的两个属性。