我有一个包含大量项目的解决方案,其中一些是.Net框架4.7.2,一些是.Net标准2.0。
当然,我们使用了大量的Nuget包,通常一切都运行得很好。
但有时,我将Nuget包添加到项目中,解决方案将构建得很好。然而,当我运行测试或实际的应用程序时,我得到了一个运行时System.IO.FileNotFound异常,声明它找不到nuget包的dll。
当我还将nuget包添加到测试项目或包含应用程序的项目中时,一切工作正常。
例如,刚才我正在将一个项目从.Net框架转换为.Net标准,所以我删除了Irony.Interpreter,并将其替换为Irony.Interpreter.NetCore。
然而,我的所有测试突然开始失败,声称他们找不到nuget包。但是,当我将Irony.Interpreter.NetCore添加到测试项目中时,所有测试都通过了。请注意,测试项目是.Net框架,并且以前从未引用过Irony.Interpreter。
有人知道为什么会发生这种情况吗?
发布于 2018-12-31 19:40:29
编译器只检查代码中是否存在使用的类型(例如类、结构和枚举)。如果你不调用它,编译器不会报错。
但是,这些依赖项可能需要其他程序集才能运行(它们是使用这些程序集作为引用进行编译的)。这些二级依赖项通常不会被编译器捕获(当来自该依赖项的类型被公开时,它们就会被捕获)。
https://stackoverflow.com/questions/53987006
复制相似问题