我對NuGet真的很陌生,對它有各種各樣的麻煩。所以最近的問題是我生成了一堆.nupkg文件,並將它們放在網絡上的共享文件夾中,然後設置NuGet以查找更新。因此,讓我們我的文件夾中說:NuGet newbie mayhem
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
接下來,我右鍵點擊解決方案,並選擇了管理的NuGet的解決方案包,然後去網上,指着安裝的軟件包,並能夠以每包安裝適用的項目(.csproj的文件) 。但是現在,當我打開解決方案的NuGet Package Manager並單擊Installed Packages時,我所看到的只是庫的一個實例。如果我點擊它,在右邊我可以看到它指向了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.3) 或
<package id="Author.Library" version="(,2.4.0" targetFramework="net45" />
加載高於一切(含)2.0即應加載低於2.4的任何版本。
所以我的主要問題是爲什麼我不能在NuGet Package Manager中看到這兩個版本的軟件包?而且,我如何最好地限制適用於特定庫的版本。