【问题标题】:Nuget install failed: the package does not contain any assembly references or content files that are compatible with that frameworkNuget 安装失败:包不包含任何与该框架兼容的程序集引用或内容文件
【发布时间】:2020-02-07 23:09:45
【问题描述】:

如果我正确理解Scott Hanselman's post here,那么我应该能够从框架 4.7.2 解决方案中引用 .net 标准库。

我想使用 Nuget 来安装这样的参考。

我正在将 Azure DevOps Artifacts 用于 Nuget 包。当我推送我的 .net 标准解决方案时,我可以看到包确实创建并且 Nuget 安装命令是

Install-Package SBD.Standard -version 2.0.0-CI-etc

但是,当我在 PM 控制台上为我的框架 4.7.2 项目尝试此操作时,我得到了

无法安装软件包“SBD.Standard 2.0.0-etc”。您正在尝试将此软件包安装到目标项目中 '.NETFramework,Version=v4.7.2',但该包不包含任何与其兼容的程序集引用或内容文件 框架

此外,我在 VS2019 的相关提要中没有将 SBD.Standard 视为可用包 -> 管理 nuget 包以获取解决方案。

【问题讨论】:

标签: azure-devops nuget .net-standard .net-4.7.2


【解决方案1】:

我想我需要 packages.config

我能够创建一个新的 4.7.2 项目并添加使用 .net 标准 2.0(但不是 2.1)的 nuget 包

当我尝试添加 nuget 包时,出现一个对话框,要求我选择 Nuget 包管理器格式

所以我选择了 Packages.config 并且成功了。

【讨论】:

  • 感谢您在此处发帖并在论坛中分享解决方案,因为这将对遇到类似问题的任何人有所帮助。
  • 我不确定我是否正确。我解决了我的问题,但不确定这到底是不是这样。 SInce PackageReference 是较新的,它应该可以工作。
  • 我已经给出了解决原因的答案,希望这可以帮助您弄清楚这个问题的原因。
  • 其实我发现使用PackageReference很重要。 stackoverflow.com/questions/60199981/…
【解决方案2】:

我不确定我是否正确。我解决了我的问题,但不确定这到底是不是这样。因为 PackageReference 是更新的,它应该可以工作。

对此问题的一些补充说明。

当您在 .net 框架中使用新的基于 SDK 的项目类型或 PackageReference 时,NuGet 恢复存在问题:

https://github.com/NuGet/Home/issues/5461

https://github.com/dotnet/sdk/issues/1755

当我们使用packages.config 项目或非基于 SDK 的项目类型时,NuGet 在安装/恢复期间不会检查兼容性。

所以,要解决这个问题,我们需要确保引用的项目是旧式 csproj 或使用 packages.config

这就是packages.config 适合您的原因。

希望这会有所帮助。

【讨论】:

  • 在您指向问题 5461 的链接中,有一个标准应用程序引用了一个框架库。我反其道而行之。引用标准库的框架应用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-04
相关资源
最近更新 更多