How to find out which .NET framework nuget package targets?

徘徊边缘 提交于 2021-01-02 05:04:58

问题


I have C# project that has to target .NET 3.5. framework and I have several nuget packages I'd like to install in the given project.

How to find out, for a given nuget package, which .NET framework versions it supports (by version of package for example), without me trying to install every available version of the package in order to see if its installation will pass without rolling back because of the dependency of the given version of the package to .NET framework higher than 3.5.?

For example, I know that xUnit.net version 1.9.2. is the highest version that supports .NET 3.5, but I had to find out this "manually".


回答1:


Cannot comment on the previous answer, but the targetFramework attribute in packages.config is the .NET version of the project at the time that package was installed.

For example, I have two projects that use Newtonsoft.Json 9.0.1, and these are the lines in their respective packages.config files:

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

and

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



回答2:


packages.config should give you the version info

example

<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:


At the risk of upsetting the Stack admins for daring to submit a wrong answer... You can download the .nupkg file (https://www.nuget.org/packages > Download ) then unzip it. In the file you can find references to PlatformToolset, ToolsVersion which I was able to use to look up the specific version of the compiler. ("v110" = Visual C++ 2012, "v120" = Visual C++ 2013, etc. To get the framework you could use decompiler a tool like ILSpy to inspect included files to see what version they target.



来源:https://stackoverflow.com/questions/31981618/how-to-find-out-which-net-framework-nuget-package-targets

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!