【问题标题】:.Net Framework dll not working on .Net Standard project.Net Framework dll 不适用于 .Net Standard 项目
【发布时间】: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 标准,它会显示错误。

【问题讨论】:

    标签: c# asp.net asp.net-core asp.net-web-api .net-core


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多