博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中用ILMerge将所有引用的DLL和exe文件打成一个exe文件,有图解
阅读量:5948 次
发布时间:2019-06-19

本文共 1510 字,大约阅读时间需要 5 分钟。

今天做了一个软件,想发布的时候才发现调用的类没几个,就像把它们都跟EXE文件打包在一起,以后复制去别的地方用也方便,于是上网搜了一下,发现网上大部分都是用ILMerge实现的,于是也自己试了一下,不过网上都没有详细的步骤演示,我就花点时间做了个教程,方便以后再有人想打包自己的程序,有篇文章可以参考,好了废话少说,马上开始:

 

1.先到下载ILMerge,才600多K,一下子就下好了.

 

2.下载后是安装:

 

3.不到一分钟就可以安装完毕:

 

4.我是安装在I盘下ILMerge目录下,以下是安装后的文件,就一个ILMerge.exe文件而已,我们等会就是用它打包程序的.

 

5.为了演示,我重新建了个工程,最后生成的是 Main.exe 和 newDll文件,其中newDll是Main.exe 中要引用的Dll文件,为了演示方便,我将它们都复制到了ILMerge的目录下,现在我们就试着用ILMerge将newDll和Main.exe文件打包起来吧.

 

6.然后进入dos窗口,进入ILMerge目录,然后执行下面代码:

I:\ILMerge\ILMerge.exe /ndebug /target:winexe /out:newclient.exe MainExe.exe /log newDll.dll

 

 

 

7.ILMerge运行时的窗口,此时它正在努力的将Main.exe和newDll文件捆绑在一起:

 

 

8.DOS窗口关闭后,我们在去ILMerge目录下看看,此时已经生成好了我们想要的newclient.exe文件,它就是Main.exe和newDll.dll的结合体啦:

 

 

以上实验在WIN7下.net framework3.5 平台,vs2008环境中测试通过

大家都知道网卡的MAC地址可以从DOS窗口中通过输入"ipconfig /all"命令运行结果获得,那么这个问题的具体内容是:

 在C#中运行一个dos命令,并截取相关输出、输出流。
 具体代码如下:

 

C# code tbResult.Text = "";

 ProcessStartInfo start = new ProcessStartInfo("Ping.exe"); //设置运行的命令行文件问ping.exe文件,这个文件系统会自己找到
 //如果是其它exe文件,则有可能需要指定详细路径,如运行winRar.exe
 start.Arguments = txtCommand.Text; //设置命令参数
 start.CreateNoWindow = true; //不显示dos命令行窗口
 start.RedirectStandardOutput = true; //
 start.RedirectStandardInput = true; //
 start.UseShellExecute = false; //是否指定操作系统外壳进程启动程序
 Process p=Process.Start(start);
 StreamReader reader = p.StandardOutput; //截取输出流
 string line = reader.ReadLine(); //每次读取一行
 while (!reader.EndOfStream)
 {
 tbResult.AppendText(line+" ");
 line = reader.ReadLine();
 }
 p.WaitForExit(); //等待程序执行完退出进程
 p.Close(); //关闭进程
 reader.Close(); //关闭流

转载地址:http://cafxx.baihongyu.com/

你可能感兴趣的文章
sqlserver使用存储过程发送http请求
查看>>
oracle 相关操作
查看>>
JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)
查看>>
activeMQ安全配置及常见问题解决
查看>>
实作 ASP.NET 多笔数据离线编辑(转)
查看>>
solr的用分布式搜索(转)
查看>>
多媒体开发之rtmp---rtmp client 编译
查看>>
异常处理汇总 ~ 修正果带着你的Code飞奔吧!
查看>>
Java开发手冊 Java学习手冊教程(MtJava开发手冊)
查看>>
The Willpower Instinct
查看>>
注入复习总结
查看>>
OpenStack 部署总结之:单节点icehouse网桥的配置
查看>>
js---12数据类型,数据类型转换,NaN,
查看>>
C字符串处理函数
查看>>
超短reads(primer、barcode、UMI、index等)比对方法
查看>>
lua正则表达式如何匹配中文
查看>>
arcgis api for js热力图优化篇-不依赖地图服务
查看>>
php逻辑操作符中&和&&的异同
查看>>
Git 远程仓库(分布式版本控制系统)
查看>>
设计模式原则之里氏替换原则
查看>>