使C#程序脱离.net框架运行(非飞信方式)
来源:互联网 发布:linux下的多线程 编辑:程序博客网 时间:2024/06/03 16:30
这几天看了很多关于脱离框架运行C#程序的文章,千篇一律,都是讲飞信方案的,此方案涉及一些法律问题,只能自己研究一下,后来用google美国网站搜了一把,看了些文章,无意中发现mono,又用mono关键字到google中国搜了一把,已经有人实现控制台程序脱离.net框架了。
其实就是换mono的公共语言运行时来使用。这样做的好处是体积小,发布免安装。首先,您需要下载mono的最新版。http://ftp.novell.com/pub/mono/archive/1.9.1/windows-installer/2/mono-1.9.1-gtksharp-2.10.4-win32-2.exe,安装后,就可以继续进行了。
1、用Visual Studio创建一个Windows应用程序,假设叫做WinApp,并添加一个按钮。
2、编译此项目,得到一个WinApp.exe文件。
3、自己建立一个文件夹WinApp,其中再建立bin和lib这两个文件夹
4、将mono安装文件夹中的bin和lib子文件夹中需要的文件拷贝至刚才建立的那两个文件夹。mono的默认安装位置是:C:\Program Files\Mono-1.9.1
5、将需要运行的exe文件放入WinApp文件夹。
6、调用,可以使用bat批处理来调用,bin\mono.exe WinApp.exe。(其实写个VC++的小程序调用最好,可以我没学过VC++)
好了,发个代码上来,有兴趣的朋友可以研究一下,7zip打包后仅3.26MB,却实现了免安装微软庞大的框架。此测试项目我在纯净的虚拟机和本机均测试过,但有个bug,mono对中文路径支持不好,如若有中文路径,则无法运行。我后来又试了用C:\Program Files\Mono-1.9.1\bin\mono.exe来执行,则没有中文路径问题。我觉得缺少了哪个文件,一个一个试着拷贝到WinApp文件夹中,再用批处理来执行,还是错误。后来干脆将整个安装目录的文件全搬到WinApp目录中,执行批处理还是失败,可是用C:\Program Files\Mono-1.9.1\bin\mono.exe来执行就是能成功,百思不得其解啊!究竟少了什么东西呢?
- 使C#程序脱离.net框架运行(非飞信方式)
- 使C#程序脱离.net框架运行(非飞信方式)
- 使用MONO使.net程序脱离.net框架运行
- 使C#程序脱离.NET FRAMEWORK也能运行
- 让C#程序run anywhere脱离.net Framework框架环境运行
- 使用飞信框架(Remotesoft DOTNET Linker)使.net程序脱离.net框架运行
- 让.Net 程序脱离.net framework框架运行
- 让 .Net 程序 脱离 .net framework框架 运行的方法
- 让 .Net 程序 脱离 .net framework框架 运行的方法
- 让 .Net 程序 脱离 .net framework框架 运行的方法
- 让.Net 程序脱离.net framework框架运行
- 让.Net 程序脱离.net framework框架运行(ZZ)
- 让.Net 程序脱离.net framework框架运行
- 让.Net 程序脱离.net framework框架运行
- 让.Net 程序脱离.net framework框架运行
- 让.Net 程序脱离.net framework框架运行
- 让.Net 程序脱离.net framework框架运行
- 让.NET程序脱离.NET FrameWork框架运行
- GPIO 的使用
- VS 中C#下"的页面布局"简单设置のの"PageLayout属性"哪里去了
- Linux使用记录
- Web前端和后端之区分
- 修改Windows Server2003/SQL Server2005的密码后金和C6软件的配置
- 使C#程序脱离.net框架运行(非飞信方式)
- Entropy
- Netty中ChannelBuffer详解
- ring0级暴力搜索内存检测系统隐藏进程(或Rootkit)
- extjs TabPanel 监听激活事件
- CONVERSION_EXIT_ALPHA_OUTPUT 函数的介绍
- OMCS Demo -- 视频、音频、电子白板、远程桌面 功能基本展现(附源码)
- Java程序员从笨鸟到菜鸟之(五十三)细谈Hibernate(四)Hibernate常用配置文件详解
- oracle merge into