1、起因

由于域推送只支持msi安装包,而很多常用的工具比如Adobe Flash Player.exe、SilverLight.exe都是exe格式的,于是引出要将exe转成silent msi的工作。

2、尝试1

首先是exe2msi。这个小工具的优点是简单方便,只要exe本身支持静默命令行(比如adobeFlashPlayer11.exe /install、silverlight.exe /q)之类的即可。缺点是很多安装包并不支持静默参数。

3、尝试2

然后是Advanced Installer,目前的版本是10.6。AdvInst提供2种方式:1)msi from exe,但这种方式只是用一个外部的msi包裹exe,如果exe不支持静默,仍然会停下来等待用户的交互。2)Repackage Installation,这种方式可以重新打包,原理是在安装前记录一下系统的镜像、安装后再记录一个snapshot,对比2个镜像找出安装前后的所有变化,包括文件、文件夹、注册表、服务……的增删改。因此尽量少开软件、尽量在干净的系统上跑,这样出来的msi会比较靠谱。操作如下:

  • 新建->导入->Repackage Installation
  • 将此计算机上的应用程序重新打包->选择Fiddler1Setup.exe->关键是“当前配置文件”,点编辑
  • “文件类型过滤”里勾上“不用扩展名排除文件”->文件和文件夹过滤”里“新建文件夹”把c:\program files\加上
  • 也可以添加需要的注册表项,这里的配置关系到后面是否能抓取到你想要的文件,要仔细选择!
  • 录制完成后,点击“查看重新封装器统计”,弹出窗口显示刚才到底收集到哪些变化,一般来说,至少Added Files应该大于0,如果只有folder,没有files,很有可能是刚才的配置里把需要的文件过滤掉了,重新配置即可。
  • 把结果导入之后,1)安装参数->限于基本的用户界面(简单进度和错误处理)勾上,这样会以静默方式安装;2)在文件列表和注册里去掉不需要的,比较我本机生成时,就抓到了杀毒软件trend和其他后台进程的Log文件,删掉即可。
  • 最后点击保存,生成msi即可。

4、其他推送工具

后来才知道,还有不少推送工具是可以推exe的,比如微软的SCCM(system center configuration manager)和VRV之类的监控软件。当然,安装包本身还是要支持静默的,一般正规的安装包都会以各种方式支持静默,少数不支持的,就需要用AdvInst之类的工具重新打包。

exe转msi的更多相关文章

  1. 使用AdvinceInstaller把exe或者msi重新包装成为msi静默安装程序

    最近在学习installShelled打包.net做的软件,其中mysql数据库的静默安装脚本不会写,本人新手勿喷.在不会写脚本的方式下,偶然间看见了这个AdvinceInstaller可以吧.exe ...

  2. VS安装程序制作之MSI/EXE

    MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据.MSI文件将程序的组成文件与功能关联起来 ...

  3. 什么是MSI文件?

    当你双击`msi`文件时,就会调用`window.installer`程序,接下来就和安装其他程序一样了,但是你要确保你的`window.installer`服务是开启的,你可以在控制面板下的服务中找 ...

  4. 使用msiexec.exe绕过应用程序白名单(多种方法)

    0x00 前言 在我们之前的文章中,我们讨论了“Windows Applocker策略 - 初学者指南”,因为它们为应用程序控制策略定义了AppLocker规则,以及如何使用它们.但今天您将学习如何绕 ...

  5. 使用VS进行打包程序解决生成两个文件的问题(压缩后只有一个exe)

    使用VS打包创建setup相信大家都挺熟的了,不熟的话网上也有很多,就不做介绍了,现在给大家写下怎么将生成的那些文件夹以及setup.exe和.msi 文件打包成一个exe 我们这里使用的是Winra ...

  6. mybatis-generator-gui如何打包成exe

    快速阅读: ​ 用wix和inno setup把mybatis-generator-gui 打包成exe和安装文件. 以后使用的时候方便,不用每次打开eclipse运行. 使用inno setup 5 ...

  7. ASP.net MVC 文件下载的几种方法(欢迎讨论)

    在ASP.net MVC 中有几种下载文件的方法 前提:要下载的文件必须是在服务器目录中的,至于不在web项目server目录中的文件下载我不知道,但是还挺想了解的. 第一种:最简单的超链接方法,&l ...

  8. 他山之石——vs2013 安装与部署及程序打包

    C#打包需要这个:InstallShield 2013 Limited Edition for Visual Studio  .下载地址: InstallShield 2013 Limited Edi ...

  9. 【转载】VS2012的打包方法

    上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...

随机推荐

  1. Maven核心概念之依赖,聚合与继承

    一.依赖 我们项目中依赖的jar包可以通过依赖的方式(dependencies元素下添加dependency子元素)引入. <dependency> <groupId>juni ...

  2. Java中HashMap案例

    package ch8; import java.util.*; /** * Created by Jiqing on 2016/11/27. */ public class MapTest { pu ...

  3. 路由器WAN端与LAN端的区别

    路由器WAN端与LAN端的区别 WAN的全称为Wide Area Network,即广域网.而LAN的全称为Local Area Network,即局域网.WAN口主要用于连接外部网络,如ADSL.D ...

  4. CSS重置代码和常用公共代码

    发的发生的发生法士大夫撒打发士大夫

  5. OpenGL的glScalef缩放变换函数详解

    glScalef是openGL中的模型缩放函数,就是把当前矩阵与一个表示延各个轴对物体进行拉伸.压缩.反射的矩阵相乘.这个物体的每个点的x,y,z坐标与对应的xyz参数相乘. 先看函数定义void g ...

  6. VI查找与替换

    一.vi查找:    当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?在vi里可没有菜单-〉查找, 不过没关系,你在命令模式下敲斜杆(/)这时在状态栏(也就是屏幕左下脚)就出 ...

  7. C#_抓包HttpWebRequest跟HttpWebResponse

    1.第一招,根据URL地址获取网页信息  这招是入门第一式, 特点: 1.最简单最直观的一种,入门课程. 2.适应于明文,无需登录,无需任何验证就可以进入的页面. 3.获取的数据类型为HTML文档. ...

  8. 20160808_卸载OpenJDK

    1.查看信息 [root@localhost ~]# rpm -qa | grep jdkjava-1.6.0-openjdk-devel-1.6.0.0-1.50.1.11.5.el6_3.x86_ ...

  9. Hbase之取出行数据指定部分+版本控制(类似MySQL的Limit)

    import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CellScanner; import org. ...

  10. SAP标准价格修改

    标准MR21修改前期的价格,不会影响到当期. 相关配置 事务码OMRN. 如企业账期已经开到 2015 年 2 月,会计账期还可对 1月记账,配置后可修改1月物料价格.