.Net Framework dll 不适用于 .Net Standard 项目
Posted
技术标签:
【中文标题】.Net Framework dll 不适用于 .Net Standard 项目【英文标题】:.Net Framework dll not working on .Net Standard project 【发布时间】:2020-01-01 11:19:28 【问题描述】:我已将 .Net 框架 ddl 引用到 .Net 标准 2.0。它会显示以下错误。
System.Reflection.ReflectionTypeLoadException: 'Unable to load one or more of the requested types.
The given assembly name or codebase, '\bin\Debug\netcoreapp2.1\FirstDataBank.DrugServer.API.dll', was invalid.
The given assembly name or codebase, '\bin\Debug\netcoreapp2.1\FirstDataBank.DrugServer.API.dll', was invalid.
The given assembly name or codebase, '\bin\Debug\netcoreapp2.1\FirstDataBank.DrugServer.API.dll', was invalid.
The given assembly name or codebase, '\bin\Debug\netcoreapp2.1\FirstDataBank.DrugServer.API.dll', was invalid.'
相同的 ddl 在 .Net 框架项目上工作正常,但对于 .Net 标准,它会显示错误。
【问题讨论】:
【参考方案1】:这根本不受支持。
您可以从 .NET Framework 项目中引用一些(但不是全部).NET 标准库,但不支持其他方式。
.NET Standard 旨在支持不同平台之间的代码共享,但 .NET Framework 仅支持 Windows。
为了让您开始了解该主题,这里有一篇很好的帖子,它的解释非常简短: Difference between Standard, Framework and Core
【讨论】:
“您可以从 .NET Framework 项目中引用 .NET Standard Libraries”——即使这样也很复杂;有一个which .NET Framework 版本可以针对which .NET Standard 版本的矩阵,甚至矩阵 有点错误且过于简化,由于 .NET Framework 硬编码加载程序中的已知绑定错误 @MarcGravell thx 澄清一下,我会调整答案【参考方案2】:“.Net Framework dll 不适用于 .Net Standard 项目”——嗯,是的;这是正常和预期的;如果您需要使用仅适用于 .NET Framework(而非 .NET Standard)的东西,那么:您应该只从本身以 .NET Framework 为目标的项目中使用它;或者:考虑重新定位或多定位您正在使用的库(如果您控制它;否则:询问供应商),理想情况下,它可以作为面向 .NET Standard 或多目标的 nupkg 使用.NET Framework 和 .NET Standard。
【讨论】:
以上是关于.Net Framework dll 不适用于 .Net Standard 项目的主要内容,如果未能解决你的问题,请参考以下文章
无法加载类型“%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll”。