DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路...
先说废话
很多朋友对我写的这个系列的第五篇比较感兴趣:http://www.cnblogs.com/liulun/archive/2011/12/08/2280110.html
因为我承诺第五篇就公布源码了,但是与第五篇相关的代码我还没有完成,
现在又花了一个周末的时间来写这篇文章
原谅我吧~
(如果你觉得这篇文章更有吸引力的话~那另当别论)
索引:
DotNet4应用程序打包工具->升级版【三】宿主程序分析+全部源码下载
DotNet4应用程序打包工具->升级版【二】安装工具分析
DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路
好了~言归正传!
先来张图片!
以升级为如下:
1:缘起
在09年的时候为了解决斯克迪亚的问题
写了这个工具的简易版:http://www.cnblogs.com/liulun/archive/2009/12/18/1627313.html
那篇文章写的实在是太简易了~
主要是因为.NET 3.5的包太大,打包到应用程序中去,太怪!所以就没有深入做这个工作
最近小洋(燕洋天)又提到这个问题~
考虑到现在.Net 4 x86只有二十几兆;(x86andx64才四十几兆)
如果能打包到应用程序中去,就美多了
于是写了这个工具。
2:分析
别看这个工具小(只有三个按钮一个文本框)
其实他里面包含了三个程序
第一个就是你看到的这个图片所展示的应用程序
我们叫他“打包工具”
第二个和第三个程序是作为资源放在“打包工具”里的
第二个程序是dotNet4的安装包
第三个程序负责判断客户端是否有dotNet环境
我们叫他“宿主程序”
下面我们就分别说说这三个程序的逻辑:
2.1打包工具
选择好您的应用程序(我们叫他“目标程序”)
点开始打包后
“打包工具”先把“宿主程序”释放到“目标程序”的相同的目录下
然后得到“目标程序”的图标ICON资源
然后把“宿主程序”的图表ICON资源替换掉
然后把整个“目标程序”当作资源添加到“宿主程序”中
然后“打包工具”把自身的dotNet安装包资源也添加到“宿主程序”中
至此打包成功
2.2宿主程序
宿主程序的逻辑稍微多一些
在打包成功,把打包后的“宿主程序”分发到客户电脑上之后
客户打开宿主程序
先检查注册表,看客户环境是否安装了dotNet4应用程序
如果没有安装
释放dotNet安装包资源(打包时加入进去的)
执行dotNet安装包程序,等待安装进程执行完成
安装完成后,再次检查注册表
如果顺利通过检查
就释放目标程序
然后执行目标程序
等待目标程序进程执行完成
执行完成后,删除释放的dotNet应用程序和目标程序
然后“宿主程序”退出
3:后记
3.1为什么不静默安装dotNet4
虽然可以做到的
但是
第一dotNet4安装过程中可能会有很多情况发生
要处理很多逻辑,做起来太复杂,
比如:阻滞的问题:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=1385
(如果您愿意赞助我,我会考虑做这个工作,嘿嘿)
第二客户端环境会报毒
3.2为什么在目标程序执行完成后要删除目标程序
我假定您打包的“目标程序”就是一个安装包
而且这个安装包的扩展名是.exe
一个安装包程序
基本的功能应该有安装、卸载、创建桌面图表等等
所以我执行了一次您的安装包~
以后的事情就让您自己做吧~
3.3我会公布源码的
虽然我对C和winapi都是一知半解
但我愿意公布源码~
在接下去的这个系列的几篇文章中会陆续公布源码
3.4程序可能会有问题
我是在WIN2008的机器上开发的这个程序
在WIN2003的机器上测试了这个程序
开发和测试都是64位环境
现在也深夜了~没有人帮我测试~
如果有问题,我会尽快搞定的~
3.5先发布编译版本
由于已经把DotNet4安装包编译到程序里面去了比较大~
就没有传到博客园服务器上来
如果您对这个程序感兴趣
请点击推荐后在评论里留下您的邮箱
我会在今天晚上六点之后统一发邮件给大家
注意:截至时间是2011年12月12号晚六点整~
这个时间点之后填写的邮箱我就不再发送了~
见谅
请大家统一把邮箱中的@符号替换成#号(避免邮箱地址被采集)
DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路...相关推荐
- 再聊inno 打包工具之关于安装或者卸载时判断程序是否在运行
再聊inno 打包工具之关于安装或者卸载时判断程序是否在运行 废话少说,show my code [code] //安装和卸载时检查程序是否运行,拷贝代码修改AppName和AppId functio ...
- python 打包 .app 运行 控制台窗口_Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法...
windows系统下安装Pyinstaller cmd下输入指令 pip install PyInstaller Pyinstaller的使用 进入需要打包的目录下,执行打包命令 Pyinstalle ...
- Linux下开源打包工具fpm的安装与使用(超详细)
Linux下开源打包工具fpm的安装与使用 一.fpm概述 二.fpm的安装 1.安装ruby环境 2.安装fpm 三.fpm的使用 1.fpm常用参数 2.举例要求 3.准备目录 4.编写脚本文件 ...
- 用JEP 343打包工具,构建自包含、可安装的Java应用程序
OpenJDK社区发布了JEP 343:打包工具的早期访问版本.JEP 343:打包工具,又名jpackage,是打包自包含Java应用程序和Java运行时环境的新工具.这个基于JavaFX java ...
- vs 2012自带打包工具进行部署安装
原文 http://www.cnblogs.com/javawebsoa/archive/2013/04/05/3001632.html#2667832 使用vs2012做的程序,程序做完后准备打包部 ...
- python打包工具哪个好用_python打包工具比较
前一段用python写了点小工具,希望能给同事用,这里总结一下python的打包以及构建的方法. 首先是一些需要安装依赖包的方法,这也是比较推荐的正统的方法. 1.setuptools or pip ...
- linux apk 打包工具,linux下apk批量打包
1.思路 整个思路就是,把需要修改的参数以的方式定义在项目的AndroidManifest.xml文件中,具体参数如何获取及具体用法这儿我就不多说,然后打包好一个完整的apk包作为参照包.然后用pyt ...
- linux rom打包工具,Android rom解包打包工具
eMMC主要是针对手机和平板电脑等产品的内嵌式存储器,由于其在封装中集成了一个控制器,且提供标准接口并管理闪存等优势,越来越受到Android手机厂商的青睐,以eMMC为存储设备的android手机, ...
- linux程序测试工具gprof,gprof-如何在Linux上分析多线程C ++应用程序?
gprof-如何在Linux上分析多线程C ++应用程序? 我曾经使用gprof进行所有Linux分析. 但是,对于我的多线程应用程序,它的输出似乎不一致. 现在,我将其挖掘出来: [HTTP://S ...
最新文章
- mysql切换到使用openssl_OpenSSL可以用来调试到MySQL服务器的SSL连接吗?
- mysql查询表的列名主键_SQl查询数据库表名、表的列名、数据类型、主键
- Spring Context 你真的懂了吗?
- js高级程序设计--AJAX JSON
- Golang 单元测试:有哪些误区和实践?
- php数据访问(查询)
- 云鹊医认证审核需要多久_ISO9001质量管理体系认证审核需要准备哪些资料
- Installing specific major Java JDK versions on OS X via Homebrew
- ASP.NET2.0的快速入门站点
- spark稀疏向量与稠密向量
- sqlserver修改实例名
- 如何永久的关闭macOS 更新提示?
- 【JavaScript脚本编程技术详解-----(一)】
- 软件测试 | 测试开发 | Git分支管理搞定在线合并和本地合并
- java.io.NotSerializableException错误解决方法
- java红宝石是哪本_以月/年红宝石显示帖子
- Matlab自带的分类学习工具箱(SVM、决策树、Knn等分类器)
- Qt 添加 QtNetwork 库文件(包括vs中和qt中)
- ch01变量和数据结构
- Python爬虫实战:手把手教你 字体反爬 CSS反爬练习 猿人学比赛题目四题详解
热门文章
- phpcms9-6-0 一键getshell工具
- 客户端控件调用服务器的参数
- C#使用Mutex实例详解
- mfc中主窗体显示(任务栏上方显示)
- dotNetCharting使用总结
- C++中的各种预处理的表示
- 非阻塞模式(ioctlsocket)
- 多线程—AQS独占锁与共享锁原理
- android 弹出菜单 toast,Android学习第二天:Toast(提醒)、Menu(菜单)、Intent的显式和隐式(包括打开、适配网站,调用拨号界面等)...
- 职校计算机课堂评课标准,中职学校计算机专业课堂教学评价(共2323字).doc