对"使用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
对"使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework"增加说明的更多相关文章
- 使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework
在Xamain 未被收购之前,这货monodroid.exe 就是一个打包的绑定...无奈 配置环境复杂,未能实现 ...有mono运行时就行了..不折腾了 玛德 让C#程序独立运行(脱离 .NET ...
- 解决Inno Setup制作安装包无法创建桌面快捷方式的问题
转自:http://yedward.net/?id=104 昨天想把个java程序做成exe安装软件,然后就去下载了Inno Setup这个软件安装包制作软件,Inno Setup这个软件确实非常好用 ...
- [转]NSIS 制作安装包无法创建桌面快捷方式或无法删除开始菜单项
用户将桌面文件转移了,如: D:\Doc\Desktop ,安装程序后,桌面不会生成快捷方式, 或者卸载后,开始菜单中的文件也不会被删除 NSIS卸载后无法删除开始菜单中的内容原因:因为NSIS中使 ...
- 使用Qt installer framework制作安装包
一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...
- 使用Qt installer framework制作安装包(不知道是否适合Mac和Linux?)
一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...
- Wix制作安装包
Wix制作安装包,找起资料来很费劲,记录一下: Product.wxs,该文件只能制作出msi形式的安装包,不能做到自动检测framework. <?xml version="1.0& ...
- 循序渐进做项目系列(5):制作安装包,谁人都可以!——VS制作安装包简明教程
一开始让我做安装包的时候,其实我是拒绝的.因为我根本就不会做安装包.查了资料之后,我很懵,很晕,很乱,因为不清晰,不简明,不直白.然而经过一番彷徨的挣扎,我终于发现:制作安装包,谁人都可以!故挥狼毫, ...
- 【原创】VB6.0应用程序安装包的生成(Setup Factory 9.0制作安装包的方法)
VB6.0应用程序安装包的生成,利用其自带的打包工具生成的安装程序很简陋,一点不美观:如果想让自己的应用程序安装的时候显得高大上一点,本教程提供使用Setup Factory 9.0制作安装包的方法. ...
- VS 制作安装包小窥
难得忙里偷闲,看到有关VS制作安装包,按下文小试一把,还行,比不上Installshield. 首先在打开 VS2010 > 文件 >新建项目 创建一个安装项目 XXX 在“目 ...
随机推荐
- win8 C 盘 突然少了 十几G 空间 原因,解决方法
原因: win8 默认最大虚拟内存为 16G多,但现在电脑本身内存就大,所以应该不用了.我现在电脑本身内存是16G. 如果C盘空间大,这个无所谓了,如果C盘空间小可以按以下操作,拿回16G空间: 解决 ...
- C# OpenFileDialog
OpenFileDialog 用于浏览并打开文件,在Windows Forms中使用,表现为标准的Windows对话框. 实例: 1.新建Windows Form Application 2.添加Op ...
- unresolved external symbol "public: virtual __thiscall...错误
今天自己在编写类模板的程序时,遇到了如下的错误:unresolved external symbol "public: virtual __thiscall...错误 调试修改了半天程序,还 ...
- leetcode reverse bits python
Reverse Bits Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (re ...
- 谷歌浏览器提示Adobe Flash Player因过期而遭到阻止
解决方法: 1.下载最新版本chrome://plugins/ 到官网Adobe Flash Player 下载最新版本,目前20 https://get.adobe.com/cn/flashplay ...
- django+celery+redis环境搭建
初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar. ...
- qemu-img convert -c -O qcow2 source.raw aim.qcow2
qemu-img convert -c -O qcow2 source.raw aim.qcow2 qemu-img create -f qcow2 -o preallocation=metadata ...
- 查询Sql Server Agent 的job的执行情况。
//有关SqlJob的信息在database(msdb)内查询.select j.job_id, j.name, j.enabled, jh.run_status, js.last_outcome_m ...
- .Net字符串驻留池
在.Net中,对于相同的字符串,.Net会将它们指向同一个地址,它们是相同的实例..Net中的字符串并不会更新,当更改一个字符串变量时,由于字符串的不可变性,.Net实际上是新创建一个字符串,而将变量 ...
- jQuery Ajax 全解析(转)
<!-- .ajax div{ border: solid 1px red; } --> // <![CDATA[ $(function(){ $("#btnajax&qu ...