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

4

我有一个之前生成的DLL,其中包含一些企业代码,我想在.NET Core项目中重用它。但是,由于原始DLL是使用.NET Framework 4.5创建和编译的,因此我无法直接将其作为引用添加。

我创建了一个NuGet软件包,其中包含我的dll,如此处所示。然后,我可以将这样的软件包添加到项目中。但是,我遇到了以下错误:

"依赖项 MyAssembly.dll 不支持 .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" ]
    }
  }
}

请查看以下网址:http://stackoverflow.com/questions/37842366/compatibility-between-dotnetcore-and-framework-4-5 - pedrommuller
2个回答

3

您可以在.NET Core类库的项目JSON文件中添加多个框架。默认情况下,您将拥有.NET Core框架。只需添加逗号并添加所需的.NET框架即可。

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

我做了类似的事情,但是我没有添加另一个框架,而是将所需的框架添加到 netstandard1.6 的依赖项中。谢谢! - luisgepeto
我的项目文件是Xml格式,只有这个TargetFramework netcoreapp2.0。我不确定如何翻译它。任何帮助将不胜感激。 - Danny Ellis Jr.

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接