【问题标题】:Adding full .NET to .NET Core library将完整的 .NET 添加到 .NET Core 库
【发布时间】:2016-10-12 09:12:59
【问题描述】:

我正在编写一个 .NET Core 库,我打算在 NuGet 上发布,完全兼容 .NET。

为此,我将 project.json 设置如下:

"frameworks": {
  "netstandard1.1": {
    "imports": "dnxcore50"
  }
}

我希望该库使用完整的 .NET 库(我们称之为 OtherLib)。我认为只要 .NET 版本的 OtherLib 与我的库的 netstandard 版本兼容,这是可能的。

但似乎不是...这是错误:

Package OtherLib X.Y.Z is not compatible with netstandard1.1 (.NETStandard,Version=v1.1). Package OtherLib X.Y.Z supports:
  - net40 (.NETFramework,Version=v4.0)
  - net45 (.NETFramework,Version=v4.5)

这是我的完整 project.json:

{
  "version": "1.0.0-*",
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "OtherLib": "X.Y.Z"
  },
  "frameworks": {
    "netstandard1.1": {
      "imports": "dnxcore50"
    }
  }
}

我怀疑其中有一些棘手的事情要做,让它工作,或者可能根本不可能?

提前致谢。 (对不起,我的英语不是母语)

【问题讨论】:

    标签: c# nuget .net-core project.json


    【解决方案1】:

    尝试通过将“netstandard1.1”更改为“net45”来修改您的 project.json:

    {
      "version": "1.0.0-*",
      "dependencies": {
        "NETStandard.Library": "1.6.0",
        "OtherLib": "X.Y.Z"
      },
      "frameworks": {
        "net45": {
          "imports": "dnxcore50"
        }
      }
    }
    

    【讨论】:

    • 谢谢!这就是我一直在寻找的!
    【解决方案2】:

    我认为只要 .NET 版本的 OtherLib 与我的库的 netstandard 版本兼容,这是可能的。

    不,这是不可能的。 .Net Framework 版本是 .Net Standard 版本的超集。由于OtherLib 是一个 .Net Framework 库,因此您不能在 .Net 标准库中依赖它。

    您要么必须将库限制为仅在 .Net Framework 上运行,要么必须删除对 OtherLib 的依赖。 (可能通过制作两个版本的库:一个用于不依赖 OtherLib 的 .Net Standard,另一个用于 .Net Framework。)

    【讨论】:

    • 感谢您的技术解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2017-03-11
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多