无法在引用类库的 azure 函数中加载文件或程序集“System.Data.Entity 4.0.0.0”

Posted

技术标签:

【中文标题】无法在引用类库的 azure 函数中加载文件或程序集“System.Data.Entity 4.0.0.0”【英文标题】:Could not load file or assembly 'System.Data.Entity 4.0.0.0 in azure function referencing a class library 【发布时间】:2020-11-30 16:53:37 【问题描述】:

收到此错误:

System.IO.FileNotFoundException HResult=0x80070002 消息=可能 不加载文件或程序集'System.Data.Entity, Version=4.0.0.0, 文化=中性,PublicKeyToken=b77a5c561934e089'。系统无法 找到指定的文件。 Source=... StackTrace:在 ....

我创建了一个引用类库的 azure 函数。

我检查了类库,System.Data.Entity 被引用。 但是当我运行 azure 函数时,我得到了这个错误。

这里可能有什么问题?

Azure 功能在 .Net Core 3.1 上。 引用的类库(作为一个项目,所以我可以调试它)在 .Net Framework 4.7.2 上

.net Core 3.1 上引用时是否支持 .net Framework 4.7.2 的类库(为什么它不加载 System.Data.Entity)?

【问题讨论】:

能否请您提供更多信息,以便我们重现您的问题。 能否贴出你的代码,如何导入类库,导入了哪些类库? 我更新了我的问题,在此处包含针对 cme​​ts 的其他答案 @Alexander,这个post可能会解决你的困惑,我们可以从帖子中看到:.NET Core doesn't support inclusion of .NET Framework libraries. 【参考方案1】:

从这个post我们可以知道:

.NET Core 不支持包含 .NET Framework 库。时期。但是,.NET Core 支持 .NET Standard,并且由于 .NET Framework 也实现了 .NET Standard,Microsoft 在编译器中做了一个特殊的例外,以允许您包含 .NET Framework 库,但需要注意的是它们可能根本不起作用,或者完全。当您在 .NET Core 项目中包含 .NET Framework 库时,您会收到有关此效果的警告,并且您需要确保该库在端到端正常工作。

因为.NET Core支持.NET Standard库,所以可以使用.NET Standard的包。这个post和你的问题很相似,他的解决方案可能会启发你。

【讨论】:

谢谢,我想我喜欢这种方法.. 使其成为 .net 标准,然后重新测试 .net 固件库是否可以工作

以上是关于无法在引用类库的 azure 函数中加载文件或程序集“System.Data.Entity 4.0.0.0”的主要内容,如果未能解决你的问题,请参考以下文章

无法使用表存储在 Azure 云工作者角色中加载文件或程序集 Microsoft.Data.OData 版本 = 5.2.0.0 错误

无法在设计器中加载文件或程序集 System.Componentmodel.Annotations 4.2.0.0

需要在 GDB 中加载共享库的调试符号

无法在自定义配置文件提供程序中加载类型

无法在通用 Windows 或 WPF 应用程序中引用 .NET Core 类库

无法在NHibernate中加载文件或程序集