gpt4 book ai didi

c# - MsBuild 在我构建时删除依赖 dll,然后在 Visual Studio 中进行调试

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:33 29 4
gpt4 key购买 nike

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

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

ExternalLib.dll 是一个始终复制的内容资源。

当我构建我的项目时,它会正确地将 ExternalLib 复制到我的输出文件夹中。如果我随后单击“调试”,它会重建我的库和用户控件项目并删除我的 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。

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

关于c# - MsBuild 在我构建时删除依赖 dll,然后在 Visual Studio 中进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57086953/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com