3

我一直在努力创建一个完全是 .NET Core 的新项目,该项目可以在不同的环境中运行,但我需要添加许多以前在严格的 .NET Framework (4.5 )。

到目前为止,我能够做的是将 .NET 461 框架添加到项目 json 中,

"frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ],
      "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.0.1",
          "type": "platform"
        },
        "Niloosoft.Hunter.ServicesDataAPI": {
          "target": "project"
        }
      }
    },
    "net461": { }
  }

它成功地恢复了包,我什至设法添加了 .NET 框架引用,但我似乎无法正确使用它们,并且出现此错误。在此处输入图像描述

所以,我的问题是,目前是否可以使用我的 .NET Framework 引用而不用以下交换预期的框架(因为我想要互操作性):

    > #if NET45 
//specific code for .NET 4.5
    > #

需要注意的是,.NETCoreApp 不支持我的项目,所以,我确实需要 .NET Framework,我只需要知道我正在尝试做的事情是否可行。

4

1 回答 1

5

不,您不能仅在 .NET Core 中运行面向 .NET 4.5 的库。您只能使用以netstandard1.xor为目标netcoreapp1.x的库(以及以 , 为目标的旧库dnxcore5.0dotnet5.x为了netstandard1.x支持 dotnet cli 而弃用了 dnx)。

但是,您可能能够使用面向 .NET 4.5Windows Phone 8.x 或 Windows 8.x 的 PCL,因为它们的 API 表面要小得多,并且只有在 Windows 8.x/Windows Phone 8.x 上都可以使用的 API在 .NET 4.5+ 上(这意味着:它使用System.Runtime.NET Core 所基于的)。

如果您的库不是 .NET 4.5+Win8 或更高版本的 PCL,那么您将不得不寻找替代库并使用#if指令或net451/net461仅目标并针对单声道运行,然后不使用 .NET Core。

于 2016-09-27T10:01:12.190 回答