我是NuGet的新手并且遇到各种各样的麻烦。所以最新的问题是我生成了一堆.nupkg文件并将它们放在网络上的共享文件夹中,然后设置NuGet以查找更新。让我们说在我的文件夹中:
Author.library.2.1.0.nupkg
Author.library.2.2.0.nupkg
Author.library.2.2.1.nupkg
然后我发现目标框架(.net)对于我的一些项目(在同一解决方案下)是不同的,所以我为每个目标生成了新的包:
Author.library.net40.2.1.0.nupkg
Author.library.net40.2.2.0.nupkg
Author.library.net40.2.2.1.nupkg
Author.library.net45.2.1.0.nupkg
Author.library.net45.2.2.0.nupkg
Author.library.net45.2.2.1.nupkg
接下来,我右键单击解决方案并选择Manage NuGet Packages for Solution,然后转到Online,指向Installed Packages并能够将每个包安装到适用的项目(.csproj文件)。但是现在当我打开解决方案的NuGet包管理器并单击已安装的包时,我看到的只是库的一个实例。如果我点击它,在右边我可以看到它指向Author.library.net45包,但我无法看到该库的.net40版本。所以我无法将它添加到.40项目中。
最后,如果我希望某些项目指向旧版本的软件包,该怎么办?我知道我可以在packages.config文件中指定它:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Author.Library" version="2.2.0" allowedVersions="
[2.0.0,2.3.0)" targetFramework="net45" />
</packages>
应该加载以上(包括)2.0到2.3之外的任何内容 或
<package id="Author.Library" version="(,2.4.0" targetFramework="net45" />
应加载2.4以下的任何版本。
所以我的主要问题是为什么我不能在NuGet包管理器中看到这两个版本的包?此外,我如何最好地限制将应用于特定库的版本。