2011-04-27 51 views
15

試圖找出在開發環境中使用Nuget來管理我們自己的庫的最佳方式。在開發環境中使用Nuget - 最佳實踐/如何

我們想要在Nuget上爲我們的第三方庫做標準化的工作,但也想用Nuget來管理我們的內部工具庫,對於開發者來說,這是非常棒的,每個人都很開心。然而,對於積極開發Utility lib的開發人員來說,它似乎更成問題,他們以前的構建lib,構建主應用程序F5的過程現在已經放慢,並且發佈,更新以及潛在的大量軟件包,更不用說了呻吟另外的過程!

我們在內部庫中使用TDD,但每個人都需要能夠隨主應用程序一起調試和修改庫,在1.3版的調試軟件包中看到Phil Haacks演示,並閱讀David Ebbos博客,但這符合不同的場景。

那麼開發/調試周期的最佳過程是什麼?如果要使用Nuget,那麼我們需要接受現有的約束條件,或者是否存在人們正在使用的混合實踐,也許1.3更接近於將所有這些自動化,或者我們只是避免使用Nuget來實現內部包,這將是一個真正的恥辱。

Loving Nuget,也許想從這個小傢伙那裏得到很多答案,反饋表示讚賞。

感謝

回答

3

我建議你使用獨立的網絡共享或飼料(類似於myget.org支持雲)於不同的場合。 你可以想象創建一個CI共享,一個QA份額,一個發行版份額,...

讓人們在引用的庫上工作做CI構建,刪除CI存儲庫上的CI包例如,並讓他們拾起通過其他項目(只需要進行簡單更新,可以通過PowerShell在預構建中實現自動化:檢查新版本,如果是,則更新)。

只要確保產品發佈其里程碑時,它們還會釋放依賴關係(可能與切換源一樣簡單,發佈版的版本號始終高於CI版本)。

希望有幫助! 歡呼聲, Xavier

+0

這也是我認爲應該有可能的。但是,我還沒有找到解決依賴關係的實用解決方案。 我們正在研究如下操作: 1.本地開發版本將發佈到開發者自己的本地供稿中。 2.構建服務器開發構建發佈到共享的開發源。 3.構建服務器QA構建發佈到共享QA源。 4.構建服務器發佈版本發佈到共享的發佈源。 但是,我不確定如何設置項目中的依賴項以在裝配時選擇正確的源。 – Spiralis 2014-01-26 22:08:24

+0

您無法配置「每個包」的訂閱源。 NuGet.config是每個解決方案。另外,我不認爲將軟件包推送到每臺開發機器是您想要採取的方法。如果開發機器不可用或正在脫機工作會怎樣?請注意,每個開箱已經有一個本地緩存。出於好奇,你是否嘗試過myget.org?尤其是,請看一下包源概念:http://docs.myget.org/docs/reference/package-sources – 2014-01-27 07:42:51

+0

推送給開發人員自己的機器只是爲了輕鬆解決對該開發人員自己的機器的依賴關係。這不是要分享給其他人。每個軟件包在我們的設置中都有自己的repo,sp根文件夾可以包含nuget.config文件。我們已經開始如此設置,即使我們還沒有完成,它確實看起來好像會起作用。雖然,我們有不同的挑戰,但我們試圖解決,雖然(http://stackoverflow.com/questions/21467094/nuget-issues-with-packages-config-project-references-and-the-solutionwide-packa) – Spiralis 2014-02-02 23:23:28

1

如果你在爲lib和在同一時間的主要應用程序的源代碼的工作,我會說的NuGet可能不是一個很好的解決方案。我認爲它只適用於你使用庫的「穩定」版本,在開發主應用程序時不需要頻繁更改的情況。

這就是說 - 你的圖書館的開發是否可以孤立地完成?你已經提到你正在對庫進行TDD,那麼爲什麼不能完成這項工作,然後構建,部署,然後完成主要的應用程序工作?

+0

我有同樣的問題,同時在應用程序和庫上工作,然後創建一個新包,並將應用程序升級到新版本,請嘗試以下擴展:http://visualstudiogallery.msdn.microsoft .com/68878c27-110c-43ec-ae61-3ea3f7aae88c – 2014-08-23 13:39:11

0

我同意,如果您在源代碼控制存儲庫中使用多個分支,Nuget不是最好的方法。

我對此做了一些探索,無法找到如何自動切換Feed並獲得項目的最新Nuget包而沒有某種開銷。

我們在TFS中有三個分支,它跟隨和敏捷過程。

我如何看到它的工作原理: 如果開發人員在開發分支上開發並更新Nuget供稿,我們會在發佈時合併到INT分支。有一個自動化的構建過程,但他們的代碼項目需要能夠告訴程序包有更新,所以我在項目中實施了更新並安裝了預構建步驟。現在的問題是,項目總是會更新,即使你不想要它,任何發生的構建都會拉動最新的nuget包,但存在風險。

我似乎無法解決如何以編程方式選擇何時更新軟件包。

+0

這應該是一個答案? – 2012-09-26 16:30:37

+0

Hi Austin, 不,這是我對NuGet的更多觀察,因爲我從技術上看它在我的工作環境中實現它。目前我似乎無法通過一些障礙。 – 2012-10-24 10:18:19