一个winform项目项目引用了一个dll,当生成时会在Release目录中存在以下文件:  a.exe,b.dll
我现在想把2个文件合并,编译成一个文件c.exe,即看不到b.dll这个文件,如何做到呢?

解决方案 »

  1.   

    搜索ILMerge,这个可以合并exe和多个dll
      

  2.   

    试试微软的ilmerge
      

  3.   

    除了用ILMerge,还可以把dll当成资源打包进exe
      

  4.   

    C# 中将所有引用的DLL 和exe文件打成一个exe文件C#工程经常会引用多个DLL文件,形成一个完整的工程项目的目的。这样的工程在发布时,需要将编译形成的EXE文件与DLL文件共同发布。如果感觉麻烦,可以将这些DLL文件与EXE文件合并,最终形成一个更大的EXE文件,然后只发布这个EXE文件就可以。这个工具就是ilMerge,可以到http://research.microsoft.com/~mbarnett/ILMerge.aspx下载。
    下载安装完毕后,设安装在c:\ilMerge目录下,只有一个有用的文件,ilMerger.exe,对于需要装配到一起的文件,我的意见是将当时工程中形成的EXE文件和引用的DLL文件都拷贝到ilMerger目录下,(我的实验例子中是chemRegression.exe文件和zedGraph.dll文件),然后进入dos窗口,进入ilMerger目录,既
    c:\ilMerger,然后执行下面目录:
    c:\ilMerger>ilmerge /ndebug /target:winexe  /out:newclient.exe chemRegression.exe  /log zedgraph.dll
    就可以合并,合并后形成的exe文件为newclient.exe
    以上实验在.net framework2.0 平台,vs2005环境下测试通过 
      

  5.   

    ILMerge
    ILMerge 可以将多个.NET程序集合并成一个单一的程序集
    合并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 
    参考
    压缩为EXE文件
      

  6.   

    也可以用winrar打包成自解压包,运行时自动解压,自动运行。