QQ交流群:110826636

对"使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework"增加说明

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。增加#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

posted @ 2016-04-05 12:03  FourOne  阅读(429)  评论(1编辑  收藏  举报