将.NETFramework 4.5 dll添加到.NETCore项目中

时间:2016-08-02 22:35:35

标签: c# asp.net asp.net-core .net-core .net-framework-version

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

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

  

“依赖项MyAssembly.dll不支持框架   .NETCoreApp,版本= 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" ]
    }
  }
}

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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