2017-09-01 242 views
0

如何爲具有依賴關係的多個解決方案創建構建定義?tfs 2017構建多個解決方案依賴關係

背景這裏:

有兩個解決方案

溶液A是類庫包含一個對象類「ClassA的」

溶液B是通過產生附加dll引用使用「ClassA的」控制檯程序通過解決方案A.

我想服務器使用一個TFS 2017構建定義來構建兩個解決方案。

它提高了錯誤:

Main\Source\SolutionB\Program.cs (13, 13) 
    Main\Source\SolutionB\SolutionB\Program.cs(13,13): Error CS0246: 
    The type or namespace name 'SolutionA' could not be found (are you 
    missing a using directive or an assembly reference?) 

如何配置構建定義,SolutionB會知道使用從SolutionA的構建產生的dll?

回答

-1

你應該建立你的第一個項目,將在第二個項目中用作dll並且複製文件來構建工件;比將您的dll發佈到您在第二個項目中引用的特定文件夾並最終構建第二個項目。

您可以檢查這個形象,有着相近的過程,只是在下面的圖像是假象發佈到三個不同勢的位置,你的情況應該發佈一個任務。 enter image description here

這是一種簡單的方法;但是如果您也將項目A用於某些其他項目,則可能需要使用NuGet包。我要將此描述爲解決2.

解決方案2:你應該create a Nuget packages通過項目A的文物才能在自源文件夾host your Nuget packages。將您的第一個項目包添加到您的項目中作爲參考。你不需要做額外的事情,只需將一個nuget恢復任務添加到你的構建定義。如果你願意,你可以在構建定義期間將你的第一個項目作爲nuget包發佈。請檢查how to restore and install neuget packages by build definiton

+0

感謝,修改構建設置後,它的工作原理 – mintssoul

+0

什麼你所描述的是一個可怕的做法。二進制依賴關係應該作爲NuGet包進行管理。 –

+0

@DanielMann這是簡單的方式來解決這個問題的一種,它似乎是工作,我persperctive一個壞的解決方案,工作總比沒有好;另一方面是的,你是正確的管理nuget包是更好的。我將編輯我的答案並添加此解決方案。謝謝。 – nzrytmn

相關問題