2017-03-15 81 views
0

我在工作中遇到了一種奇怪的情況,我在多個項目中使用相同的庫,但沒有采用標準方式。如何在Visual Studio中正確配置依賴關係 - .NET

假設我們有一個名爲「MainProject」的主項目。
我們還有一個名爲「A」的共享庫和另一個名爲「B」的庫。
說「B」是一個廣泛的實用程序庫,它包含大量內容,並且由「MainProject」使用庫「A」

所有這些項目/庫具有GIT中作爲其VCS,和被構造成與子模塊爲這樣:

MainProject:

  • 文庫B的子模塊
  • 文庫A
    • 庫B的子模塊

現在問題出現時,試圖重建「MainProject」的解決方案。
Visual Studio的輸出錯誤:

Error 1 Metadata file 'LibraryA_Path\LibraryB.dll' not found

搜索這個問題,很明顯,我認爲,我希望它的東西沒有得到建立。
這就對了 - 「A」不會構建它引用的「B」,可能是因爲它嵌套得太深。

然後我試圖明確地將「A」的引用設置爲「MainProject」的「B」,它解決了構建問題,但強制更改庫的Git工作樹,這意味着對該庫的任何更新將強制我再次執行這個手動引用的過程。

那麼配置這類項目的正確方法是什麼?我可以嘗試任何事情,因爲我完全控制了所有項目和庫 - 在代碼中以及在Git中。

回答

0

我不知道我是否正確理解了你,但是你是否引用了由庫B項目構建的* .dlls?如果是這種情況,請將其替換爲庫B項目中的項目引用。 Visual Studio然後確保引用的項目是先構建的。

+0

不幸的是,我**做**參考項目本身。 –

+0

所以這些項目像這樣引用它們? MainProject - > Library B和MainProject - > Library A - > Library B?圖書館B是否有任何對圖書館A的引用?你可以想到的任何其他環引用可以防止Visual Studio確定正確的構建順序? – DeveloperExceptionError

+0

是的,你說得對 - 這正是我的項目訂單。 但是,沒有環形或循環引用,通過查看項目的構建順序,它實際上看起來很好。 –

相關問題