2012-03-30 97 views
4

在多個版本樹中使用NuGet的正確/可接受的方式是什麼?我們有一款採用2.12版本的產品,並且正在不斷開發,生成屬於主號碼2的較新版本。與此同時,我們的3.5版本也正在積極開展其他功能集和模式的研究。如果我使用相同的NuGet包ID,用戶將默認獲得3.5版本。NuGet版本樹

我是否應該爲每個主要項目版本創建不同的軟件包ID?

回答

5

對於你的情況,我看到兩種可能的解決方案。您可以使用不同的軟件包ID,也可以通過手動編輯packages.config文件來限制客戶端使用特定的版本範圍。

在packages.config你可以設置一個version constraint

<packages> 
    <package id="SomePackage" version="2.1.0" allowedVersions="[2,3)" /> 
</packages> 

這將使客戶獲得最新的2.x版,但從來沒有升級到3.x版。

1

本頁面:http://nuget.codeplex.com/wikipage?title=Pre-Release%20Packages應該會幫到你。簡而言之,標記爲2.12的包將被歸類爲穩定,但是包含例如字母的版本3.5beta被視爲預發佈版本,只能使用–Prerelease標誌進行安裝。

+0

謝謝。這有助於更高版本處於測試階段,但我有兩種主要版本2和3都在生產中的情況,它們具有不同的功能集和數據庫模式,並且它們自己進化。一個答案是,這不是最佳做法,但這就是我所處的情況。 – 2012-03-30 15:08:22