簡體   English   中英

參考另一個項目,其中帶有“復制本地”

[英]Reference another project with Copy Local on it's reference

我有一個項目“ ProjA”,其中包含對其他幾個項目和一些“插件”程序集的引用。 所有這些引用的“本地復制”均設置為“ True”。 請注意,插件程序集中的代碼(它們是項目引用)沒有直接在“ ProjA”中引用,而是通過DI / Ninject加載和定位。 (因此,我將這些項目引用用作將插件程序集放入輸出文件夾的一種方法,請參閱下面的原因)

我也有引用ProjA的項目“ ProjB”。 它使用引用的插件程序集調用應做的ProjA代碼。

問題是,它不起作用。 插件程序集不會從ProjA輸出文件夾(已“本地復制”)復制到ProjB輸出文件夾中。 因此Ninject不會加載它們,並且事情失敗了。

所以我有兩個問題:

  • 如果我對VS / msbuild指示ProjA引用項目P1,P2,P3,P4,並將本地副本設置為true,那么為什么要假設只需要主輸出程序集就可以使ProjA工作? 我可以換個角度思考嗎?
  • 我猜想,向插件程序集添加“復制本地”引用是讓VS識別插件和使用它們的項目(當前為一組固定的插件,因此這條路線)之間的構建依賴關系的一種方式-不理想。 然后,我認為將插件程序集作為“內容”添加到項目中是可行的,但是然后我遇到兩個問題:1)TFS源代碼控制; 插件項目需要一個可寫的目標來構建,大概是-內容文件將被“檢入”,並且2)一些插件具有自己的內容:有了引用,我不必擔心丟失某些東西。 走內容路線我需要引用另一個項目的build輸出文件夾,包括所有內容,但不包括PDB。

我還考慮了插件項目的構建后步驟(並不理想:我將它們從另一個項目中拉到這個新解決方案中,如果我添加了構建后步驟,則很可能會破壞其他解決方案)或項目這取決於它們(可以,但是帶有相對路徑的XCopy,並且不得不手動設置項目依賴項。似乎又變得更加棘手了)。

有什么我想念的東西嗎? 如果跨項目引用鏈接“復制本地”,則將非常適合。

似乎無法使用Visual Studio或msbuild。

復制local = true是所有VS弊端的根源。 好吧,至少是這樣。

我只想說-不要使用它。 有一個不錯的outputdir,例如T:\\ Bin,然后使用構建后腳本將所需的所有內容復制到該目錄。 然后從那里跑。 不要只是相信VS,像瞎老鼠一樣走來走去。

您也可以考慮使用GAC。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM