2010-06-20 85 views
0

我有一個VS解決方案(.sln)具有以下結構。ILMerge和項目參考

  • 項目A
  • 項目B(包含參考投射以及引用第三方組件像NHibernate的,StructureMap等)

我想用ILMerge推出第三方裝配到ProjectB.dll中。但是,我不想合併ProjectA。

我已經使用突出顯示的程序here。這對於我合併第三方程序集是非常合適的。但是,在構建ProjectB時仍出現此錯誤:

合併期間發生異常: 未解析的程序集引用不允許:ProjectA。

我沒有明確指定將ProjectA合併。換句話說,我並不是說這個項目是正確的。我如何讓IlMerge忽略ProjectA?順便說一句,ProjectA是一個項目參考,而不是一個直接的組裝參考。

謝謝!

回答

4

對ILMerge使用/lib參數,傳遞包含ProjectA.dll的目錄。

具體(假設項目B的目標平臺是.NET 4.0客戶端配置文件):

ILMerge.exe /out:MasterDll.dll 
      /targetplatform:v4,"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client" 
      /lib:ProjectA\bin\Release 
      ProjectB\bin\Release\ProjectB.dll 
      Libraries\NHibernate\NHibernate.dll 
      Libraries\StructureMap\StructureMap.dll 
      ... 
0

4.0只需使用:

/上投放:V4,爲「%ProgramFiles%\參考大會\微軟\ Framework.NETFramework \ v4.0「