ILMerge(合并Dll和EXE文件)到底怎么用呀????看过,下面的文章,可是还是不懂怎么使用,是在vs2005中使用吗???项目开发中经常会碰到这种情况: 程序中有些功能使用到了第三方的dll, 但又不想把第三方的dll做为单独的文件随同程序来发布,怎么办呢?在这里我向大家推荐一款非常不错的工具: ILMerge, 这个工具可以将多个dll文件合并为一个文件, 也可以把dll文件合并进exe文件,以后发布程序就不用愁啦(不过请注意,如果你合并的是第三方的dll库,可能会涉及到版权问题,合并之前请慎重考虑哦)~以下文字摘自ILMerge的官方文档:ILMerge 可以将多个.NET程序集合并成一个单一的程序集。不过,一些.NET程序集可能会因为某些特殊的情况(比如包含非托管代码),而不能被合并。笔者强烈建议对ILMerge的输出文件使用Preverify(包含在.NET Framework SDK工具集中)进行验证,以确保能够在.NET运行时环境中加载。
ILMerge是一个控件台应用程序,但是它所有的功能也可以用编程的方式来访问。因为Visual Studio 2005允许将一个可执行文件做为外部引用,所以你可以自已写一个客户端,将ILMerge作为一个库来调用它。
ILMerge 可以将多个输入程序集合并为一个目标程序集,输入程序集中的第一个程序集被称作主程序集。如果主程序集是一个可执行文件,那么目标输出也会是一个可执行文件,并和主程序集有相同的入口点(entry point)。而且,如果主程序集有强名称,并且提供了一个snk文件,那么目标程序集会用同样的snk文件进行重新签名,这样同样也有强名称。
请注意,何任程序或文件等(比如配置文件),如果依赖于原来的输入程序集名称,此时必须用目标程序集的名称来替代。
主程序集中的任何Win32资源也会被拷贝到目标程序集中。
ILMerge有许多选项可以来控制它的工作方式,你可以在命令行下直接输入ILMerge查看。我这里给出几个示例:
合并DLL:ILMerge /target: library /out: output.dll input1.dll input2.dll input3.dll
合并EXE:ILMerge /target: exe /out: output.exe input1.exe input2.dll input3.dll????????????????????????????????????????????????????????????????????????????????????????????????????????
谁能详细点,怎么使用,是在vs中还是在dos窗口中使用呢???

解决方案 »

  1.   

    哦,发了半天了,还是没有人能指导一下,难道大家没有过合并dll的想法吗??????
      

  2.   

    完全多余的.而且兼容性也有问题,如果你大把了第三方dll进去,万一别的程序也用这个组件,而它是散装的话.就等于有了两个相同的dll了,应该会冲突的.
      

  3.   

    我知道,呵呵,在CMD里面,走到有ILmerge.exe的目录,然后运行:ILmerge /ndebug /target:winexe /out:C:\newApp.exe /log C:\myapp.exe C:\file1.dll C:\file2.dll
    即可将两个dll合并到exe,这玩意太棒了,只怕有后遗症啊~~~