无法在引用类库的 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)?
【问题讨论】:
能否请您提供更多信息,以便我们重现您的问题。 能否贴出你的代码,如何导入类库,导入了哪些类库? 我更新了我的问题,在此处包含针对 cmets 的其他答案 @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