将 .NET Framework 4.5 dll 添加到 .NET Core 项目

Add .NETFramework 4.5 dll to .NETCore project

我有一个以前生成的 DLL,其中包含一些我想在 .NETCore 项目中重用的企业代码。但是,由于原始 DLL 是使用 .NETFramework 4.5 创建和编译的,因此我无法直接添加 dll 作为参考。

我创建了一个包含我的 dll 的 nuget 包,如图 here。之后,我可以将这样的包添加到项目中。但是,我遇到以下错误:

"The dependency MyAssembly.dll does not support framework .NETCoreApp,Version=v1.0"

我已经尝试引用 .NETCore.Portable.Compatibility 但我认为这不是正确的方法。如何在我的代码中使用这个 dll? 这是添加 Nuget 包后我的 project.json 的样子。

{
  "version": "1.0.0-*",

  "dependencies": {
    "MyAssembly.dll": "1.0.0",
    "Microsoft.EntityFrameworkCore": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
    "NETStandard.Library": "1.6.0"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [ "dnxcore50", "portable-net451+win8" ]
    }
  }
}

如果您的 .NET 4.5 dll 未编译为 PCL,则您无法从面向 netcoreapp1.0 的项目中引用它。它应该重新编译为可移植库或目标 netstandard API 集。

您可以在 .netcore class 库的项目 json 文件中添加多个框架。默认情况下,您将拥有 .net 核心框架。只需添加逗号并添加所需的 .net 框架。

{
    "version": "1.0.0-*",
    "frameworks": {
        "netstandard1.6": {
            "dependencies": {
                "NETStandard.Library": "1.6.0"
            },
            "imports": "dnxcore50"
        },
        "net45": {
            "dependencies": {},
            "imports": "net452"
        }
    }
}