【问题标题】:Referencing a .NET 4.5.2 class library in .Net Standard 1.6 project在 .Net Standard 1.6 项目中引用 .NET 4.5.2 类库
【发布时间】:2017-01-06 17:27:38
【问题描述】:

这种情况可能很奇怪。但我想使用 Nuget 将现有的 .NET 4.5.2 类库引用到新的 .Net Standard 1.6 类库中。我在 Nuget 包商店中根本看不到 .Net 4.5.2 类库。

我不想将任何现有项目迁移到 .Net Core,但想在 .Net Core 项目中使用它们。

有可能实现吗?或者我是否试图实现一些不是 .Net Core 目的的东西。

我的 project.json 如下。

{
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
    "NETStandard.Library": "1.6.0",
    "AutoMapper": "5.0.2",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
    "Microsoft.VisualStudio.clrdbg": "14.0.25520-preview-3139256"
  },

  "tools" : {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netstandard1.6": {
         "imports": [ "dnxcore50", "net452" ]
    }
  }
}

更新:

我在frameworks 下添加了net452 部分。然后我收到无法解决已经安装的几个软件包的错误。 PFA 截图。

无论如何我可以强制它工作。

【问题讨论】:

    标签: .net .net-core project.json


    【解决方案1】:

    您的框架导入部分缺少 Net45 导入。如果它是一个可运行的项目,那么您需要将 Microsoft.NETCore.App 添加到您的依赖项中并导入必要的框架以使其工作

    {
      "version": "1.0.0-*",
    
      "dependencies": {
        "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        },
        "AutoMapper": "5.0.2",
        "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
        "Microsoft.VisualStudio.clrdbg": "14.0.25520-preview-3139256"
      },
    
      "tools" : {
        "Microsoft.EntityFrameworkCore.Tools": {
          "version": "1.0.0-preview2-final",
          "imports": [
            "portable-net45+win8+dnxcore50",
            "portable-net45+win8"
          ]
        }
      },
    
      "frameworks": {
        "netcoreapp1.1": {
          "imports": [
            "portable-net45+wp80+win8+wpa81+dnxcore50",
            "dnxcore50",
            "net452"
          ]
        }
      },
      "buildOptions": {
        "emitEntryPoint": true,
        "preserveCompilationContext": true
      },
    }
    

    但是,如果您使用的是 PCL,则需要使用 netstandard 框架并导入必要的框架才能构建 PCL。

    {
      "version": "1.0.0-*",
    
      "dependencies": {
        "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
        "NETStandard.Library": "1.6.0",
        "AutoMapper": "5.0.2",
        "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
        "Microsoft.VisualStudio.clrdbg": "14.0.25520-preview-3139256"
      },
    
      "tools" : {
        "Microsoft.EntityFrameworkCore.Tools": {
         "version": "1.0.0-preview2-final",
         "imports": [
            "portable-net45+win8+dnxcore50",
            "portable-net45+win8"
          ]
        }
      },
    
      "frameworks": {
        "netstandard1.6": {
          "imports": [
            "portable-net45+wp80+win8+wpa81+dnxcore50",
            "dnxcore50",
            "net452"
          ]        
        }
      }
    }
    

    【讨论】:

    • 已经在 pcl 中测试了我更新的 project.json。它工作正常
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多