一、前言                            

  B/S模式的特点之一,客户端版本升级相对简单、快捷,适合产品的快速迭代。而ActiveX组件的自动更新同样也继承了这一优点。下面我们一起来了解吧!

二、二话不说更新ActiveX                    

1. 设置ActiveX控件项目的程序集版本号、文件版本号

  打开项目属性->程序集信息

  

2. 设置安装程序的版本号(msi文件的版本号)

  打开项目属性

   

3. 设置注册表中的插件版本号

  右键点击安装项目->视图->注册表;

  

   在 HKEY_CLASSES_ROOT下创建 CLSID/{ActiveX控件的GUID}/InstalledVersion;
   在 InstalledVersion 下新建字符串值,设置 Value 为如“1,3,1,0“的版本号,删除 属性Name 中的值;

  

4. 设置cab包的版本号
  xxx.html页面

<object classid="clsid:xxxxxxxxxx" id="ax" codebase="xxx.CAB#version=1,3,1,0"></object>

5. 版本检测流程
  1. cab包版本号通过object标签codebase属性的version指定;每次加载ActiveX控件时,会用cab包的版本号与注册表中的版本号做对比,若cab包版本号较新则会下载并更   新新的cab包;
  2. 在安装cab包时,会对比cab包中的msi文件的版本号,若msi版本号较旧,则安装失败;较新则继续安装;
  3. 在安装msi文件时,会对比ActiveX控件的版本号,若版本号较旧,则安装失败;较新则继续安装。

三、卸载                                

在“控制面板” -> “程序和功能” 中卸载ActiveX控件

四、总结                                

 本篇篇幅不长,但由于自动更新涉及的步骤还是挺多,一旦漏掉一步将导致更新失败,大伙可要注意了。接下来请期待《.Net魔法堂:史上最全的ActiveX开发教程——ActiveX与JS间交互篇》吧!

 尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/3823478.html ^_^肥仔John

.Net魔法堂:史上最全的ActiveX开发教程——自动更新、卸载篇的更多相关文章

  1. .Net魔法堂:史上最全的ActiveX开发教程——部署篇

    一.前言 接<.Net魔法堂:史上最全的ActiveX开发教程——发布篇>,后我们继续来部署吧! 二. 挽起衣袖来部署   ActiveX的部署其实就是客户端安装ActiveX组件,对未签 ...

  2. .Net魔法堂:史上最全的ActiveX开发教程——ActiveX与JS间交互篇

    一.前言 经过上几篇的学习,现在我们已经掌握了ActiveX的整个开发过程,但要发挥ActiveX的真正威力,必须依靠JS.下面一起来学习吧! 二.JS调用ActiveX方法 只需在UserContr ...

  3. .Net魔法堂:史上最全的ActiveX开发教程——发布篇

    一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程——开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包  C#开发的Activ ...

  4. .Net魔法堂:史上最全的ActiveX开发教程——开发篇

    一.前言 在设计某移动内部自动化运维平台时,经综合考虑终端机性能和功能需求等因素后,决定采用B/S模式,并且浏览器通过ActiveX组件实现与服务器Agent作P2P的通讯.好处,整个平台以网页形式存 ...

  5. 新手必看,史上最全的iOS开发教程集锦,没有之一!

    最近大火的iPhone XS Max和iPhone XS,不知道有没有同学已经下手了呢?一万三的价位确实让很多人望而却步啊.据说为了赢得中国的用户,专门出了双卡双待的,可想而知中国市场这块“肥肉”人人 ...

  6. 史上最全面的SignalR系列教程-2、SignalR 实现推送功能-永久连接类实现方式

    1.概述 通过上篇史上最全面的SignalR系列教程-1.认识SignalR文章的介绍,我们对SignalR技术已经有了一个全面的了解.本篇开始就通过SignalR的典型应用的实现方式做介绍,例子虽然 ...

  7. 史上最全面的SignalR系列教程-3、SignalR 实现推送功能-集线器类实现方式

    1.概述 通过前两篇 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 文章对SignalR的介绍, ...

  8. 史上最全面的SignalR系列教程-4、SignalR 自托管全解(使用Self-Host)-附各终端详细实例

    1.概述 通过前面几篇文章 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 史上最全面的Signa ...

  9. 史上最全面的SignalR系列教程-5、SignalR 实现一对一聊天

    1.概述 通过前面几篇文章 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 史上最全面的Signa ...

随机推荐

  1. Oracle User Calls 和 Executions 两个概念的区别

    User calls = (User session Login + Parsing within a session + Executions of sql's/Cursors ) per seco ...

  2. iOS 多渠道打包 编译脚本

    http://webfrogs.me/2012/09/19/buildipa/http://blog.csdn.net/baxiaxx/article/details/8267295http://ic ...

  3. 首次构建android studio gradle 下载缓慢的问题

    1.先使用其他工具下载gradle, https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 2.然后放在C:\Users\A ...

  4. FFrpc python客户端lib

    摘要: Ffrpc可以很方便的构建c++ server, 在网游服务器程序开发中,进程间通讯非常的重要,比如gateserver和gameserver或dbserver之间的通信.而ffrpc可以使得 ...

  5. GNU风格 ARM汇编语法指南

    汇编源程序一般用于系统最基本的初始化:初始化堆栈指针.设置页表.操作 ARM的协处理器等.这些初始化工作完成后就可以跳转到C代码main函数中执行. 1.  GNU汇编语言语句格式 任何Linux汇编 ...

  6. Spark源码系列(四)图解作业生命周期

    这一章我们探索了Spark作业的运行过程,但是没把整个过程描绘出来,好,跟着我走吧,let you know! 我们先回顾一下这个图,Driver Program是我们写的那个程序,它的核心是Spar ...

  7. android自定义viewgroup实现等分格子布局

    先上效果图: 实现这样的效果: 一般的思路就是,直接写布局文件,用LinearLayout 嵌套多层子LinearLayout,然后根据权重layout_weight可以达到上面的效果 还有就是利用g ...

  8. npm 发布包

    每个包都必须包含package.json配置文件 生成package.page文件 1.到项目目录下执行npm init根据提示输入即可 最后记得要yes 完成项目后就是要发布到npm了 首先需要有n ...

  9. [Z]CS权威会议

    CS Conference TOP 40 计算机会议TOP40 一.A 类 15 个 ASPLOS: Architecture Support for Programming Languages an ...

  10. Android ListView OnItemLongClick和OnItemClick事件内部细节分享以及几个比较特别的属性

    本文转自 http://blog.sina.com.cn/s/blog_783ede030101bnm4.html 作者kiven 辞职3,4个月在家休息,本以为楼主要程序员逆袭,结果失败告终继续码农 ...