【问题标题】:Nuget won't install package, due to a mismatch in the targeted framework由于目标框架不匹配,Nuget 不会安装包
【发布时间】:2021-11-29 21:09:55
【问题描述】:

我有一个引用 python 包的 C# 项目。该项目是在 Visual Studio 2017 中开发的,面向 .NET 4.5.2。我现在正在更新项目,目标是 .NET 4.7.2。我还想将 python 包更新到更高版本(具有 Python 3.9 而不是 Python 3.5 的版本)。

当我尝试更新包时。我收到一条错误消息,指出无法将包安装在以 .NET 4.7.2 为目标的项目中,因为它没有引用任何 .NET 4.7.2 程序集或内容。

所以很明显我不能在这个包中使用 .NET 4.7.2。问题是 - 我可以在这个包中使用哪个版本的 .NET ?如何判断 Nuget 包支持哪个 .NET 框架?

【问题讨论】:

  • 你的意思是这个包nuget.org/packages/python/3.9.9?奇怪的是它不起作用,因为它不依赖于任何框架版本
  • 是的,这个。然而,它不会安装:-(
  • 如果手动更新csproj到你想要的版本也会失败吗?有时,VS 的包管理器会因随机原因失败并给出奇怪的错误消息
  • 您是否将您的 csproj 从旧样式更改为 SDK 样式?

标签: python c# .net nuget


【解决方案1】:

如果您开始访问 nuget.org 上的包页面,如 cmets 中针对您的问题发布的那样:https://www.nuget.org/packages/python/3.9.9

在右侧,有一个名为“在 NuGet 包资源管理器中打开”的链接,可将您带到此处:https://nuget.info/packages/python/3.9.9

这让您可以检查包的内容。

现在,您需要了解 NuGet 的工作原理,但在包中的 3 个顶级文件夹中,只有 build/ 与 NuGet 约定匹配。这里唯一的文件是build/native/python.props,匹配NuGet's convention of build/{tfm}/{packageid}.[props|targets]

因此,此包仅与native TFM 兼容,它们是 C++ 而非 .NET 项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2017-12-02
    • 1970-01-01
    相关资源
    最近更新 更多