C#:在构建项目时复制依赖项的依赖项

时间:2017-01-18 16:52:08

标签: c# visual-studio msbuild

我有一个C#项目(例如Project.exe),它依赖于a.dll,而a.dll依赖于b.dll。

当我构建Project.exe时,会构建a.dll并将其复制到Project.exe的输出文件夹中 - 但b.dll不会被复制到输出文件夹中。

如何在构建Project.exe时将a.dll和b.dll都复制到Project.exe的输出文件夹中?

编辑:我认为重要的是要指出,我想保持Project.exe和b.dll彼此分离。这就是首先使用a.dll的重点。

2 个答案:

答案 0 :(得分:2)

您是否尝试过检查b.dll的“复制本地”属性?

  1. 在Visual Studio中,单击“解决方案资源管理器”选项卡。
  2. 在参考文献下找到b.dll。
  3. 右键单击并选择“属性”。
  4. 确保将Copy Local设置为True。
  5. 看看是否能解决问题。

答案 1 :(得分:0)

您可以使用msbuild copy命令来实现它。请右键单击项目节点 - >卸载项目 - >右键单击项目 - >编辑project.csproj,在csproj文件中添加以下代码。

<Target Name="AfterBuild">
  <Copy SourceFiles="$(MSBuildProjectDirectory)\..\b\$(OutputPath)b.dll" DestinationFolder="$(OutputPath)" ContinueOnError="true"/>  
  </Target>

以下是供您参考的样本。 https://1drv.ms/u/s!AlvaNEnglADDgQP6j0wRMk5A1DCU