对"使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework"增加说明
2016-04-05 12:03
756 查看
http://www.cnblogs.com/basilwang/archive/2011/11/29/2267809.html
想做独立引用的估计都看过这一篇文章,但是因为软件更新,很多地方已经不适应了,所以我使用的时候遇到很多麻烦,所以记录下来,让后来人少走弯路。
Cygwin Terminal这个更新比较快,所以对于的安装也有改变,比如gcc
比如我在Cygwin的home目录的user下放一个Release要发布的程序。
先执行下面的命令
mkbundle -c -o host.c -oo bundle.o --deps Release/MonoLoad.exe Release/System.dll
再在host.c文件中移除_WIN32。增加
得到:
再执行下面的命令
i686-pc-mingw32-gcc -o MonoLoad.exe -Wall host.c `pkg-config --cflags --libs mono-2` bundle.o
就会生成一个新的MonoLoad.exe文件
这样就大功告成了。
其实最主要的是编译器的安装,上面文章里面的“
想做独立引用的估计都看过这一篇文章,但是因为软件更新,很多地方已经不适应了,所以我使用的时候遇到很多麻烦,所以记录下来,让后来人少走弯路。
Cygwin Terminal这个更新比较快,所以对于的安装也有改变,比如gcc
比如我在Cygwin的home目录的user下放一个Release要发布的程序。
先执行下面的命令
mkbundle -c -o host.c -oo bundle.o --deps Release/MonoLoad.exe Release/System.dll
再在host.c文件中移除_WIN32。增加
#undef _WIN32如下:
#ifdef _WIN32 #include <windows.h> #endif
得到:
#ifdef _WIN32 #include <windows.h> #endif#undef _WIN32
再执行下面的命令
i686-pc-mingw32-gcc -o MonoLoad.exe -Wall host.c `pkg-config --cflags --libs mono-2` bundle.o
就会生成一个新的MonoLoad.exe文件
这样就大功告成了。
其实最主要的是编译器的安装,上面文章里面的“
gcc -mno-cygwin -o ResultantBundle.exe -Wall host.c
`pkg-config --cflags --libs mono-2|dos2unix`
bundle.o <additional arguments>”很容易误解,其实是一个gcc编译器的选择,而我选了i686-pc-mingw32-gcc
相关文章推荐
- c# get set 说明
- mono嵌入式应用研究(三):注册内部函数
- 算法實例-C#-信箱排序-PigeonHoleSort
- C#获取单元格值(使用NPOI插件)
- c#处理基于Modbus协议的串口通讯程序
- C# Regex ignoring non-capturing group
- mono嵌入式应用研究(二):虚拟机的初始化
- c# log组件 log4net使用介绍
- C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩
- leetcode 3 : Longest Substring Without Repeating Characters 最长无重复子串 (C# 语言版)
- C# The process cannot access the file because it is being used by another process
- 基于C# 生成Zip压缩包代码
- C# 操作INI配置文件
- C# Distinct使用,支持对象的相等比较
- vs2015中 c#如何 编译成低版本供xp使用
- C#16位MD5加密算法
- C#流(stream)
- .Net/C# 实现 中国移动 CMPP v3.0 ISMG <-> SP 收发短信的 SP 客户端 (CMPP SP Client)
- C#多线程网页采集器(Spider)
- C#实现的ReplaceFirst和ReplaceLast