我希望這是已經回答的問題的一個愚蠢的副本。如何在每個CI構建之後直接從NuGet提供新的DLL?
我有一個asp.net網站,依賴於一些其他項目(DLL複製到bin)。現在,我想要的是每次更新任何這些項目時,我會在我的網站/ bin中獲取最新的dll。我不希望我的CI服務器檢入更新的dll。
我已經爲我的項目提供了一個私人的NuGet feed,並且只是希望它在每次成功的CI構建之後提供最新的dll。現在,我的問題是
有沒有辦法直接提供dll,而不創建nupkg?並可能從構建輸出文件夾中選擇它們? (由於某些原因,將包作爲所有dll的後期構建任務一天創建數百次並不方便)如果可能的話,太棒了!
如果不是,我們是否可以避免每次增加dll的版本號,還是讓nuget更新到新的dll?比如根據最新發布日期或其他內容進行更新? (有大量的dll和很多依賴項)
有沒有辦法在不構建解決方案的情況下采用最新的dll?是的,我可以做一個nuget更新命令,但有沒有其他方法?
有人建議鏡像我目前的代碼庫,並使用類似MyGet或ProGet的東西。出於多種原因,目前尚不可行。
我想要做的實際事情是,每當我的CI服務器成功運行時,它都會在我的提要中推送新的nuget包。所以,我不想觸發基於依賴關係的VS構建,但是希望在每個CI構建之後通過nuget創建新的dll(s)。 現在可以通過在構建文件中添加任務來創建新包。但是,正如你所提到的那樣,每天創造一百次新套餐並不是一個好的選擇。所以,我正在尋找一些東西,以便 –
(1)dll可以直接提供,而無需創建包。在這裏,我非常確定它的起源,因爲它們只是從我的(其他)項目創建的。目的 - 開發人員每次構建解決方案時都會獲得最新的依賴關係。 (2)你說的是真的,我只是尋找一個開發環境的旁路,在那裏我們可以根據生成日期或其他東西來更新軟件包,而不是每次增加版本(嚴格開發) –
核心原則之一CI和特別是持續交付是任何構建*都可以產生可以推向生產的構件。這意味着您需要所有工件和構建的可追蹤性。 如果您發現您每天都會多次構建依賴項(例如庫),那麼很可能應該將此代碼帶入開發人員使用的主要解決方案中。 你可以嘗試NuGet的'PreRelease'功能,但我仍然認爲這不是你的問題所在。 M –