首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么有时我需要将nuget包添加到正在运行的实际项目中

为什么有时我需要将nuget包添加到正在运行的实际项目中
EN

Stack Overflow用户
提问于 2018-12-31 19:36:16
回答 1查看 29关注 0票数 1

我有一个包含大量项目的解决方案,其中一些是.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。

有人知道为什么会发生这种情况吗?

EN

回答 1

Stack Overflow用户

发布于 2018-12-31 19:40:29

编译器只检查代码中是否存在使用的类型(例如类、结构和枚举)。如果你不调用它,编译器不会报错。

但是,这些依赖项可能需要其他程序集才能运行(它们是使用这些程序集作为引用进行编译的)。这些二级依赖项通常不会被编译器捕获(当来自该依赖项的类型被公开时,它们就会被捕获)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53987006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档