2012-10-12 88 views
5

我有一個TFS環境下分支設置的NuGet庫與TFS

  • 開發 - 穩定,可釋放的分支
  • 修復 - - 對於修復到生產開發
  • 主要主要工作分支代碼是不正常的發佈週期的一部分

我們自己設置爲使用的NuGet,我要配置的東西,使得在Dev分支代碼從拉包「 Dev'nuget儲存庫,主要來自'Main'之一,等等。

現在,我已經想出了一些事情,我有一個單獨的文件坐在我的分支的根目錄,告訴nuget.exe哪個存儲庫使用。

我現在試圖弄清楚如何讓這些文件的內容在每個分支中有所不同。我可以單獨檢查每個分支,但這會引發Dev-> Main和Main-> HotFix合併問題。

所以,我想我想要做的是以某種方式排除這個特定的配置文件從Dev-> Main等合併的一部分。任何方式來做到這一點?

或者,還有其他方法可以完成我想要對Nuget所做的事情,將它指向不同分支的不同nuget存儲庫?

+0

我可以問你從這樣做得到什麼嗎? – Betty

+0

從不同分支機構的不同存儲庫? 那麼,我們希望使用nuget來支持不同TFS團隊項目之間的引用。因此,當開發人員在Dev分支上使用組件A(在不同團隊項目中引用組件B)時,我們希望他們的nuget引用指向Dev版本。從HotFix分支工作時,我們希望該參考指向Prod版本。 這有道理嗎? –

+0

因此,當釋放組件A時,可能會因爲它依賴於尚未在組件B中發佈的功能而破壞?還是你同時釋放它們? – Betty

回答

5

你必須做一些掛羊頭賣狗肉......

  • 有每個分支不同的飼料。一個簡單的方法來設置多個Feed www.myget.org
  • 啓用NuGet包你想在這個問題
  • 在解決方案的.nuget \ nuget.config文件來註冊解決方案恢復,添加以下內容:
<configuration> 
    <packageSources> 
    <add key="Branch X packages" value="http://www.myget.org/F/corpxyzbranchxyz" /> 
    </packageSources> 
    <disabledPackageSources /> 
    <activePackageSource> 
    <add key="Branch X packages" value="http://www.myget.org/F/corpxyzbranchxyz" /> 
    </activePackageSource> 
</configuration> 

意味着你必須有每個分支不同nuget.config文件和合並/分支時,你要小心。

+0

謝謝。這幾乎是我結束的地方,儘管我不知道activePackageSource節點。我希望有一種方法可以防止在分支之間合併時出現容易出錯,但看起來像我們將要獲得的那樣好。 –