2010-10-16 95 views
52

我想知道是否可以使用nuget來只存儲對版本控制中所需軟件包的引用(只有package.config並忽略軟件包文件夾)。NuGet和分佈式版本控制(DVCS)

有沒有辦法告訴nuget(重新)下載各種package.config文件中的所有引用的包?或者可以放入構建腳本的類似東西。

更新:

看來,我不是誰要求此功能只有一個:See this work item(感謝PHeiberg的提示)

更新2:

的NuGet現在內置此功能。詳情請參閱Using NuGet without committing packages to source control。剩下的事情就是把packages目錄添加到.gitignore或者你的VCS的一些等價物中(如果你在版本庫的根目錄下並且正在使用git,/packages/就會訣竅)。

+0

@羅伯特 - 羅斯回答了這個從大衛博博客條目。 :-) http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html – klabranche 2012-01-04 15:47:35

回答

8

我不知道你的第一個問題。

至於讓CI服務器自動更新包,理論上是可行的。您可以鏈接「List-Package -Installed」和「Update-Package」命令,並將每個軟件包更新爲最新版本。有關更多詳細信息,請參閱command reference

斯科特的話題格思裏says this

「你可以整合與CI解決方案的命令行 選項,並明確地做一個 更新包命令作爲構建/ CI過程的 一部分拉 下來的更新。坦率地說,我不知道 是有道理的,因爲我們 都在談論,雖然場景,因爲通常 你想一些開發,以更新核心運行時 依賴於新版本之前決定 。NuPack的 默認模式將有一個開發人員 使用NuPack來安裝庫 - 和 NuPack會自動檢查 包和依賴項來源 控制。這樣,另一個開發者(或者CI服務器)不需要再次使用NuPack --他們可以只同步他們的 源和構建。但正如我前面提到 前面 - 如果你想明確 做一個更新爲您的CI 過程中你可以的一部分「

編輯:

您的評論後,我看到你在做什麼我在NuPack的討論清單中發現了this long thread這個問題,一個解決方案顯然不是v1的一部分,在你選擇的配置項中配置一個自定義的構建任務,在你的倉庫中配置一個配置是我看到的唯一解決方案。請將您的發現報告回來,您對我有興趣。

+0

嗯,我不想要最新版本,我想指定的一個 - 我只是不想在存儲庫中使用二進制文件(因爲它大大擴展了每個新版本的DCVS存儲庫的存儲庫大小) – Fionn 2010-10-19 13:44:09

+0

好的,這種說法是有道理的。您可以在存儲庫中粘貼軟件包名稱和版本列表,然後讓您的CI使用「Add-Package -Version」命令獲取每個軟件包。 – PHeiberg 2010-10-19 19:11:57

+0

發現最近的討論。看我的編輯。 – PHeiberg 2010-10-19 19:30:31

5

Phil Haack's blog有關於這個問題的當前討論,他在這裏要求如何解決這個問題的反饋。