使用ILMerge将多个dll文件合并到一个dll中,无法使用某些dll文件

时间:2014-10-16 17:45:57

标签: ilmerge

我有一个正常工作的库项目,它使用流畅的nhibernate,npgsql,enyim.caching dll文件,我使用ilmerge将所有文件合并为一个,然后合并的dll文件被引用另一个项目,然后它没有工作,它抱怨无法找到enyim.caching.dll的程序集,以及缺少nhibernate的配置 我用于合并的命令在

之下
ilmerge /targetplatform:v4 /target:library /out:testmerged.dll Release/Enyim.Caching.dll Release/FluentNHibernate.dll Release/Iesi.Collections.dll Release/log4net.dll Release/Mono.Security.dll Release/NHibernate.Caches.SysCache.dll Release/NHibernate.dll Release/Npgsql.dll Release/mylib.dll 

引用它的项目中的错误:

  

消息="' FluentNHibernate.Automapping.IAutoClasslike,testmerged,Version = 2.12.0.0,Culture = neutral,PublicKeyToken = null'缺少无参数构造函数。"

     

消息="无法加载文件或程序集' Enyim.Caching'或其中一个依赖项。系统找不到指定的文件。"

我注意那两个dll文件正在使用运行时版本v2.0.50727,运行时版本v4.0.30319下的所有文件都正常工作。

那么,你们可以提出任何建议如何解决这个问题吗? 感谢

1 个答案:

答案 0 :(得分:1)

好的,最后,我找到了enyim.caching.dll的解决方案 我必须添加

<sectionGroup name="enyim.com">
    <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, testmerged"/>
  </sectionGroup>
  <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, testmerged"/>

在我的配置文件