我有一个项目有几个项目依赖项,我想将两个依赖项目的输出(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>
答案 0 :(得分:0)
首先,它在什么时候失败了?尝试使用设置为importance =“high”的一些消息任务来调试您所拥有的内容(以确保它们在输出中的可见性)。想到的第一个检查是在MSBuild任务之后的DependentAssemblies ItemGroup中实际存在的内容吗?
如果您正在做我想做的事情但您尝试做的事情,就是将所有依赖项放到一个目录中,也许是为了部署,然后你考虑过将所有项目输出到同一目录吗? OutDir和OutputPath是您可以使用的两个属性。