c# - 在.NET Core 2.0中引用.NET Framework 4 dll

标签 c# dll .net-core

我有一些用.Net框架4.0编写的dll,当我将其引用到用.NET core 2.0编写的项目时,我无法运行我的程序。

虽然我的IDE(vs 2017)可以在运行时Im正确识别从该dll导入的对象Im具有以下异常:

System.BadImageFormatException: 'Could not load file or assembly 'A_dotnet_4.0_A, Version=10.0.0.0, Culture=neutral, PublicKeyToken=0ad20d08c672086a'. An attempt was made to load a program with an incorrect format.'

我尝试过了:
  • 将设置更改为任何CPU,就像我在here
  • 中看到的那样
  • 尝试清理-重建我的项目。

  • 可能吗?如果可以,我应该怎么做。
    在下面的link中似乎是可能的-我只是不明白怎么做。

    最佳答案

    总之:

    它不起作用,因为该DLL的.NET Framework版本太低。 .NET Core 2.0及更高版本支持引用其他.NET Standard dll(因此,.NET Core或.NET Framework或将来可能实现.NET Standard的任何其他库)。

    .NET Framework 4.0未实现.NET Standard,因此不会产生与.NET Standard兼容的dll:.NET Framework仅从版本4.5及更高版本开始实现.NET Standard。因此,如果可以找到为.NET Framework 4.5编译的该DLL的版本,则从理论上讲应该可以使用,除非有一些极端情况。

    关于c# - 在.NET Core 2.0中引用.NET Framework 4 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52703060/

    相关文章:

    .net - 使用在 Linux 上运行的 .NET Core 时连接到 MongoDB 失败

    c# - 找不到“The type or namespace ‘BlobTrigger’”

    c# - 如何在运行时请求 iOS 权限(相机和位置)?

    java - java中如何获取给定dll的路径?

    c - 如何在C中调用动态库?

    c++ - 包含 C++ 库的 R 包无法为窗口构建

    c# - 转换 lambda 表达式

    c# - LightInject 尝试创建一个没有当前作用域的作用域实例

    c# - 在单个 LINQ 查询中生成的迭代次数

    c# - 在 C# 应用程序中获取集群 azure kubernetes 服务 (AKS) 运行状况/可用性