是否有可能告訴NuGet,您想要使用最新版本的包與特定主版本,並且永遠不會超出此主要版本?NuGet限制包的最大主版本
舉個例子,我們以jQuery爲例:如果我們需要支持舊瀏覽器,我們不能使用2.x版本。我們僅限於使用最新的1.x版本。
我們知道當前可用的(並且默認提供的管理Nuget包對話框)jQuery的版本是2.1.1。我們不需要使用這個版本,而是使用當前最新的jQuery 1.x分支的主要版本,目前是1.11.1。
我知道如何在最初安裝1.11.1版本。一個簡單的解決方法是手動編輯packages.config文件,1.11.1
更換version
屬性的值:
<packages>
<package id="jQuery" version="1.11.1" targetFramework="net451" />
</packages>
並生成項目。
我不知道的是如何告訴NuGet跟蹤發佈1.x分支的新版本,以便爲它們提供更新,就像在新的2.x版本是發佈:
默認的NuGet將始終嘗試更新到最新的2.x版,而不是最新1.x的
換句話說,當使用舊主版本的軟件包時,您需要手動檢查版本,並使NuGet每次都安裝它們。
我試圖使用包裝的星號version
屬性:
<packages>
<package id="Package1" version="1.*" targetFramework="net40" />
</packages>
不過的NuGet拋出異常:
NuGet Package restore failed for project Project1: System.IO.InvalidDataException: Unable to parse version value '1.*' from 'packages.config'.
at NuGet.PackageReferenceFile.<GetPackageReferences>d__0.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at NuGet.VsEvents.PackageRestorer.RestorePackages(String packageReferenceFileFullPath, IFileSystem fileSystem)
at NuGet.VsEvents.PackageRestorer.PackageRestore(ProjectPackageReferenceFile projectPackageReferenceFile).
那麼,你如何實現上述目標?