2010-06-20 83 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“