在多個版本樹中使用NuGet的正確/可接受的方式是什麼?我們有一款採用2.12版本的產品,並且正在不斷開發,生成屬於主號碼2的較新版本。與此同時,我們的3.5版本也正在積極開展其他功能集和模式的研究。如果我使用相同的NuGet包ID,用戶將默認獲得3.5版本。NuGet版本樹
我是否應該爲每個主要項目版本創建不同的軟件包ID?
在多個版本樹中使用NuGet的正確/可接受的方式是什麼?我們有一款採用2.12版本的產品,並且正在不斷開發,生成屬於主號碼2的較新版本。與此同時,我們的3.5版本也正在積極開展其他功能集和模式的研究。如果我使用相同的NuGet包ID,用戶將默認獲得3.5版本。NuGet版本樹
我是否應該爲每個主要項目版本創建不同的軟件包ID?
對於你的情況,我看到兩種可能的解決方案。您可以使用不同的軟件包ID,也可以通過手動編輯packages.config文件來限制客戶端使用特定的版本範圍。
在packages.config你可以設置一個version constraint:
<packages>
<package id="SomePackage" version="2.1.0" allowedVersions="[2,3)" />
</packages>
這將使客戶獲得最新的2.x版,但從來沒有升級到3.x版。
本頁面:http://nuget.codeplex.com/wikipage?title=Pre-Release%20Packages應該會幫到你。簡而言之,標記爲2.12
的包將被歸類爲穩定,但是包含例如字母的版本3.5beta
被視爲預發佈版本,只能使用–Prerelease
標誌進行安裝。
謝謝。這有助於更高版本處於測試階段,但我有兩種主要版本2和3都在生產中的情況,它們具有不同的功能集和數據庫模式,並且它們自己進化。一個答案是,這不是最佳做法,但這就是我所處的情況。 – 2012-03-30 15:08:22