2013-09-25 51 views
0

我有一個包含兩個項目的解決方案: - 了projectA擁有的NuGet參考ServiceStack ormlite - 項目B具有了projectA的MSBuild不是抄襲引用的程序集

參考當我建立了projectA的OUTDIR包含所有解決方案該程序集來自Nuget包(4個程序集),而項目B僅複製其中的2個。顯然,當我開始時,我得到一個FileNotFoundException。 (似乎 我已經沒有成功嘗試添加private=true標誌

我已經看到了這個問題,許多人提到,現在變得很困惑,怎麼在這裏上的MSBuild不處理引用我覺得是這樣的我知道:(唯一)。

任何想法什麼可以做有一個可靠的工藝打造我的解決方案?

回答

2

構建只會複製到項目B的輸出文件夾中的組件被實際使用了projectA並導致了projectA的輸出組件,引用無論哪個組件了projectA引用。

您可以反射或ILDASM打開了projectA的組裝,看看那些4個組件只有2實際使用和參考的。

如果組件需要在運行時項目B在那裏,加參考NuGet包到項目B爲好,或者確保它們被複制。這篇文章顯示general-purpose solution,但我沒有嘗試過。

+0

是的,我究竟做了已經。我試圖避免這條路線,因爲我的解決方案實際上包含數十個項目和相同數量的單元測試項目(它們確實需要以及與您的建議相同的待遇)。感謝您的回答和鏈接,我只希望,因爲我的情況對很多依賴(automapper,servicestack ormlite,servicestak接口,...)出現的問題是MS解決這問題。 – Dave

+0

我像了projectA使用那些不可複製的組件如@戴夫說,他得到'FileNotFoundException'。 – Artyom