.net – 引用的依赖关系未复制到输出目录

我有一个CommonUtils lib我已经内置到一个dll,我从几个项目的文件引用。 CommonUtils取决于设置为文件引用的log4net.dll,而在构建CommonUtils.dll时copy-local = true。 log4net.dll和CommonUtils.dll不在GAC中。

MyWorkingProject中的一切都可以正常工作,其中只有一个文件引用到CommonUtils.dll – log4net.dll显示输出目录中(因为它是CommonUtils.dll的依赖关系,而不是从MyWorkingProject引用)。
但是,如果我创建一个新的项目来添加一些单元测试:MyWorkingProjectTest和项目引用MyWorkingProject,然后在这里再次引用CommonUtils.dll(我想使用一些CommonUtils),然后构建log2net.dll,这是项目的依赖引用和文件引用也没有被复制到输出目录。

有谁能澄清这里发生了什么?编译器不知道应该抓到哪个log4net.dll文件?有没有什么我在这里做错了?我应该以其他方式对log4net.dll进行明确的复制吗?
有没有意义,我必须明确地引用log4net吗?

这是设计。您需要考虑引用自动继承的含义。虽然您可以在逻辑上查看引用的内容,但编译器没有这样的描述。从理论上讲,如果整个依赖关系树走遍整个框架,那么最终可以重现框架和操作系统的很大一部分。

这绝对是一种痛苦,我同意并理解你的沮丧,但我认为微软无法找到合适的方式来做到这一点。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...