【问题标题】:Installing a .NetStandard 2.0 Nuget package into a VS2015 Net 4.6.1 project将 .NetStandard 2.0 Nuget 包安装到 VS2015 Net 4.6.1 项目中
【发布时间】:2018-03-29 00:54:15
【问题描述】:

我正在尝试将针对 .NetStandard 2.0 (Microsoft.Extensions.Logging.Abstractions) 的 Nuget 包安装到 Visual Studio 2015 中的 Net 4.6.1 项目中。但是,虽然框架应该兼容,但它不兼容干得好:

Install-Package : Could not install package 'Microsoft.Extensions.Logging.Abstractions 2.0.0'. You are trying to 
install this package into a project that targets '.NETFramework,Version=v4.6.1', but the package does not contain 
any assembly references or content files that are compatible with that framework. For more information, contact 
the package author.
At line:1 char:1
+ Install-Package Microsoft.Extensions.Logging.Abstractions

我已按照此处列出的步骤进行操作:Entity Framework Core 2.0 on .NET 4.6.1

所以我已经安装了包“NETStandard.Library.NETFramework”,并添加了

<PropertyGroup>
  <PackageTargetFallback>netstandard2.0</PackageTargetFallback>
</PropertyGroup>

到 csproj。但是,没有运气 - 仍然是同样的问题。

有没有办法将 NetStandard 2.0 包安装到我的项目中(无需升级 VS 或安装任何 Net Core 目标包等)?

谢谢

【问题讨论】:

  • 我刚刚看到这是一个 VS2015 项目——我怀疑这就是问题所在。它在 .NET Core 2.0 SDK 中运行良好,具有 Core SDK 风格的项目。

标签: c# visual-studio nuget .net-standard


【解决方案1】:

有没有办法将 NetStandard 2.0 包安装到我的项目中(无需升级 VS 或安装任何 Net Core 目标包等)?

恐怕不会。正如 Jon 指出的那样,该问题的原因是您使用的是 Visual Studio 2015。

根据.NET Standard,.NET Standard 2.0 支持.NET Framework 4.6.1(带有.NET Core 2.0 SDK):

所以我们需要安装 .NET Core 2.0 SDK。 Microsoft 每次关于 .NET Core 2.0 预览版的通信都提到 Visual Studio 2017,因此我认为强烈建议使用 Visual Studio 2017 与 .NET Core 2.0 配合使用。

此外,NuGet 包 NETStandard.Library.NETFramework弃用

因此,将 .NetStandard 2.0 Nuget 包安装到 Net 4.6.1 项目中,我强烈建议使用 Visual Studio 2017 来使用 .NET Core 2.0。

希望这会有所帮助。

【讨论】:

  • 实际上,有一个针对所需目标的 VS 2015 安装程序,并且适用于 VS 2015 的 NuGet 3.6.0 支持这一点。但是还是有一些bug,比如github.com/dotnet/sdk/issues/1539
  • 感谢 Leo,非常感谢您的回答。如果您名下的 MSFT 泄露了您在 Microsoft 工作,请提供一些反馈:对于我作为半专业开发人员(必须在非管理员环境中使用 VS 且仅不经常/包更新)的我来说,C# 开发有成为现代版的 DLL 地狱。如果像上面提到的那样非常简单的软件包有硬性要求,需要对 VS 进行持续的管理员更新,甚至是最新/最好的版本,恕我直言,出了点问题。我喜欢Net的进步,但不应该忘记兼容性!
  • 如何添加对位于 C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\netstandard\v4.0_2.0.0.0__cc7b13ffcd2ddd51\netstandard.dll 中的 .netstandard.dll 的引用
【解决方案2】:

使用以下支持引用 .NET Standard 2.0 包:

使用 .NET Standard 2.0 库时仍然存在一些错误,尤其是在混合使用 .NET Standard

【讨论】:

  • 谢谢马丁。这确实回答了这个问题 - 不幸的是,我自己不能走这条路,因为我在没有管理员的机器上并且不能安装例如 VSIX。有点遗憾.. .Net 开发过去很容易,现在如果你不能不断更新你的工具,你似乎就被冷落了
  • 我还需要安装“.NET Core Tools for Visual Studio 2015”github.com/dotnet/core/blob/master/release-notes/…
  • 感谢您提供 https:// 链接。它用 Azure.Messaging.ServiceBus.7.1.2 修复了我的 VS 2015 Nuget 包问题。警告:此链接下载 dotnet-standard-support-vs2015-2.0.0-win-x86.msi 并将安装且无反馈。在程序和功能中显示为“.NET Standard Support for Visual Studio 2015 (x86)”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
相关资源
最近更新 更多