繁体   English   中英

MsBuild在我生成时会删除依赖项dll,然后在Visual Studio中进行调试

[英]MsBuild deletes dependency dlls when I build, then debug in Visual Studio

我有一个具有以下简化的依赖项结构的项目(总共有很多项目)。

MainWindow
 |- UserControl
   |- Library
     |- ExternalLib.dll

ExternalLib.dll是具有始终复制功能的内容资源。

当我构建项目时,它可以正确地将ExternalLib复制到我的输出文件夹中。 如果再单击“调试”,它将重建我的Library和UserControl项目并删除我的ExternalLib.dll。

在MSBuild构建日志中,我看到以下内容:

5>Task "Delete"
    ...
5>  Deleting file "/path/to/bin/ExternalLib.dll".
5>Done executing task "Delete".

为什么MsBuild会删除我正在构建的项目所依赖的项目的依赖关系?

我想到了。 显然,如果您有一个项目结构,其中A引用B引用了C,如果A不需要C,则编译器“足够聪明”以删除C。

因为在我的主应用程序中对ExternalLib的引用是通过反射进行的,所以编译器认为我不需要ExternalLib。

该问题可以通过两种方式解决:

  1. 在A中有对C的虚拟引用,例如,只需创建在C中找到的类的实例。
  2. 在A中明确引用C。

我个人选择了第二个选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM