2017-04-06 98 views
0

我想創建一個由多個解決方案組成的存儲庫,並且每個解決方案都將發佈到本地nuget服務器。在nuget中有多種解決方案的開發過程

但我不明白如何進行開發過程,當我想編輯解決方案A並使用另一個解決方案B通過nuget包引用解決方案A,而不需要在每次構建後在nuget服務器上發佈解決方案A?如果我在解決方案B中進行項目引用,它會帶來正確的依賴關係,我不想要它。

例如:我想在解決方案B中添加一些功能,並且需要更改解決方案A.解決方案B具有對解決方案A的nuget參考。如果我更改解決方案A,我必須發佈它爲nuget服務器,而不是等到nuget服務器更新,只能比解決方案B測試它,它對我來說很不好。

和答案的問題,爲什麼我需要它: 我們正在建設微服務,決定開發獨立的解決方案每個微服務以及每個共享庫在他們的獨立解決方案了。而這一切都在一個存儲庫:-)

+0

刪除nuget包並添加對項目的直接引用。 –

+0

@SamAxe,因爲我寫這種方式似乎對我很不好,f.e,我的大學或我可以忘記刪除直接引用 – digger

+1

我同意薩姆。我們在我們公司也是這樣做,並且不可能調試nuget軟件包。看看我們也在考慮用來減輕這些問題的Nuget Package Switcher。它將參考文獻從nuget refs更改爲項目參考:https://github.com/rsuter/NuGetReferenceSwitcher – leemac

回答

0

用的NuGet多種解決方案開發過程

的NuGet有許多優點作爲微軟開發平臺的軟件包管理器,但是,這並不意味着它是沒有缺陷。就像你遇到的那樣,如果被引用的項目經常被修改,我們必須重建它,創建nuget包,將它發佈到nuget服務器,並等待每個修改的nuget服務器更新。那會帶來很多無聊的工作。爲了解決這個缺點,項目到項目的參考應該是一個更好的方法。所以建議Sam和Ieemac的建議。

項目到項目引用的優點是它在構建系統中的項目之間創建了依賴關係。如果從上次構建引用項目開始已經更改了依賴項目,它將被構建。文件引用不會創建構建依賴關係,因此可以在不構建依賴項目的情況下構建引用項目。

所以的最佳解決方案是,當引用的項目被頻繁修改的項目到項目應參考建議,在參考的NuGet份額時參考項目給他人或發佈是比較合適的。就像NuGet Reference Switcher這樣做。

+0

但是我們使用的是docker,因此存在一個問題,我需要將所有外部項目目錄複製到Dockerfile中以編譯某些服務。使用nuget項目將自動包含在內。因此,我們希望使用nuget包而不是直接引用。 – digger

+0

感謝您的解釋。您必須使用nuget包來代替直接引用,在這種情況下,重建,創建nuget包,將其發佈到服務器並非不可避免。這是因爲nuget將整個包裝進行管理。任何修改都需要重新包裝和發佈。 –