前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路

DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路

作者头像
liulun
发布2022-05-09 12:24:54
5670
发布2022-05-09 12:24:54
举报
文章被收录于专栏:liulunliulun

先说废话 很多朋友对我写的这个系列的第五篇比较感兴趣:http://www.cnblogs.com/liulun/archive/2011/12/08/2280110.html 因为我承诺第五篇就公布源码了,但是与第五篇相关的代码我还没有完成, 现在又花了一个周末的时间来写这篇文章 原谅我吧~ (如果你觉得这篇文章更有吸引力的话~那另当别论)

索引:

DotNet4应用程序打包工具->升级版【三】宿主程序分析+全部源码下载

DotNet4应用程序打包工具->升级版【二】安装工具分析

DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路

好了~言归正传!

先来张图片!

image
image

以升级为如下:

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,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档