如何查找哪个.NET框架NuGet包是针对的?

48
我有一个C#项目,必须针对.NET 3.5框架进行目标设置,并且我有几个NuGet包想要安装在该项目中。
如何找出给定NuGet包支持哪些.NET框架版本(例如按包的版本),而不是尝试安装包的每个可用版本以查看其是否会因依赖于高于3.5的.NET框架版本而回滚安装?
例如,我知道xUnit.net版本1.9.2是支持.NET 3.5的最高版本,但我不得不“手动”找出这一点。

24
在 NuGet Gallery 中展示一个软件包所支持的所有框架和版本似乎是一项非常基础的信息,但我有些困惑为什么还没有完成这个工作。请将其翻译为中文,不要改变原意或添加解释。 - Mike Marynowski
3
按目标框架进行筛选是一个开放性问题。https://github.com/NuGet/NuGetGallery/issues/2936 - Pedro
4个回答

4

无法对前面的答案进行评论,但packages.config中的targetFramework属性是安装该包时项目的.NET版本。

例如,我有两个使用Newtonsoft.Json 9.0.1的项目,它们各自的packages.config文件中的行如下:

  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net452" />

并且

  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net462" />

在哪里可以找到packages.config文件? - Elias

1

packages.config应该给您版本信息

示例

<package id="xunit" version="2.2.0-beta1-build3239" targetFramework="net46" />
  <package id="xunit.abstractions" version="2.0.0" targetFramework="net46" />
  <package id="xunit.assert" version="2.2.0-beta1-build3239" targetFramework="net46" />
  <package id="xunit.core" version="2.2.0-beta1-build3239" targetFramework="net46" />
  <package id="xunit.extensibility.core" version="2.2.0-beta1-build3239" targetFramework="net46" />
  <package id="xunit.extensibility.execution" version="2.2.0-beta1-build3239" targetFramework="net46" />
  <package id="xunit.runner.msbuild" version="2.2.0-beta1-build3239" targetFramework="net46" developmentDependency="true" />
  <package id="xunit.runner.visualstudio" version="2.2.0-beta1-build1144" targetFramework="net46" developmentDependency="true" />

3
packages.config文件是在安装软件包后创建的,因此这不能回答这个问题。 - Ronald

0
冒着惹恼 Stack 管理员的风险,因为提交了错误答案... 您可以下载 .nupkg 文件(https://www.nuget.org/packages > 下载),然后解压缩它。在文件中,您可以找到对 PlatformToolset、ToolsVersion 的引用,我能够使用它们来查找编译器的特定版本。(“v110”= Visual C++ 2012,“v120”= Visual C++ 2013,等等)。要获取框架,您可以使用反编译工具,如 ILSpy,检查包含的文件以查看它们针对哪个版本。

0

截至2022年6月,终于有可能查看一个包支持哪个.NET Framework/Standard版本了。

不幸的是,这只能在网站上实现,而无法在Visual Studio中使用。尽管如此,它非常实用。

以下是Newtonsoft.Json 13.0.2的情况: .NET、.NET Core、.NET Standard和.NET Framework版本都列出来了(甚至更多)

虽然这远远不够我认为必要的,但这是一个开始(等待了6年之后)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接