如何找出哪个.NET框架nuget包的目标?

时间:2015-08-13 07:04:52

标签: nuget nuget-package .net-framework-version

我的C#项目必须以.NET 3.5为目标。框架,我有几个我想在给定项目中安装的nuget包。

如何找到给定的nuget包,它支持哪些.NET框架版本(例如,通过包的版本),而不是我试图安装包的每个可用版本,以查看它的安装是否会通过没有回滚,因为给定版本的包依赖于高于3.5的.NET框架。?

例如,我知道xUnit.net版本1.9.2。是支持.NET 3.5的最高版本,但我必须手动找到这个#34;。

3 个答案:

答案 0 :(得分:2)

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" />

答案 1 :(得分:2)

无法评论上一个答案,但是packages.config中的targetFramework属性是安装软件包时项目的.NET版本。

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

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

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

答案 2 :(得分:0)

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