您的位置:首页 > 编程语言 > C#

对"使用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。增加
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: