exe转msi
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的更多相关文章
- 使用AdvinceInstaller把exe或者msi重新包装成为msi静默安装程序
最近在学习installShelled打包.net做的软件,其中mysql数据库的静默安装脚本不会写,本人新手勿喷.在不会写脚本的方式下,偶然间看见了这个AdvinceInstaller可以吧.exe ...
- VS安装程序制作之MSI/EXE
MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据.MSI文件将程序的组成文件与功能关联起来 ...
- 什么是MSI文件?
当你双击`msi`文件时,就会调用`window.installer`程序,接下来就和安装其他程序一样了,但是你要确保你的`window.installer`服务是开启的,你可以在控制面板下的服务中找 ...
- 使用msiexec.exe绕过应用程序白名单(多种方法)
0x00 前言 在我们之前的文章中,我们讨论了“Windows Applocker策略 - 初学者指南”,因为它们为应用程序控制策略定义了AppLocker规则,以及如何使用它们.但今天您将学习如何绕 ...
- 使用VS进行打包程序解决生成两个文件的问题(压缩后只有一个exe)
使用VS打包创建setup相信大家都挺熟的了,不熟的话网上也有很多,就不做介绍了,现在给大家写下怎么将生成的那些文件夹以及setup.exe和.msi 文件打包成一个exe 我们这里使用的是Winra ...
- mybatis-generator-gui如何打包成exe
快速阅读: 用wix和inno setup把mybatis-generator-gui 打包成exe和安装文件. 以后使用的时候方便,不用每次打开eclipse运行. 使用inno setup 5 ...
- ASP.net MVC 文件下载的几种方法(欢迎讨论)
在ASP.net MVC 中有几种下载文件的方法 前提:要下载的文件必须是在服务器目录中的,至于不在web项目server目录中的文件下载我不知道,但是还挺想了解的. 第一种:最简单的超链接方法,&l ...
- 他山之石——vs2013 安装与部署及程序打包
C#打包需要这个:InstallShield 2013 Limited Edition for Visual Studio .下载地址: InstallShield 2013 Limited Edi ...
- 【转载】VS2012的打包方法
上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...
随机推荐
- Java中HashMap案例
package ch8; import java.util.*; /** * Created by Jiqing on 2016/11/27. */ public class MapTest { pu ...
- python的最最最最最基本语法(3)
模块:在Python中,一个.py文件就称之为一个模块(Module). 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package).例如两个名不hello.py的模块分 ...
- [js] 跨域
原文链接:http://www.cnblogs.com/scottckt/archive/2011/11/12/2246531.html 什么是跨域? 首先什么是跨域,简单地理解就是因为JavaScr ...
- 在Maven中设置Nexus私有服务为中央工厂(repository)
原文:http://blog.csdn.net/mexican_jacky/article/details/50275695 nexus中的仓库列表 第一种方式: <repositories&g ...
- !!转!!hashCode与equals的区别与联系
这篇文章写得很好!!! 原文链接:http://blog.csdn.net/afgasdg/article/details/6889383 一.equals方法的作用 1.默认情况(没有覆盖equal ...
- PHP与Ajax的交互更新页面
PHP与Ajax的交互更新页面 本次主要学习ajax的概念以及怎么与PHP之间进行交互操作 1.什么是Ajax? 国内翻译常为“阿贾克斯”和阿贾克斯足球队同音,AJAX 是一种用于创建快速动态网 ...
- 【Python】输出中文字符串的两种方法
print u"中文" # -*- coding: utf-8 -*- 这句话放在最上面,记得是最上面,顶格写 这样,print后,字符串前就不用加u了
- Redis常用的基本命令整理
SET key value [EX seconds] [PX milliseconds] [NX|XX] 设置缓存 K-V,如果 key 已经存在,则重写 EX seconds -- 设置过期时间, ...
- AHCI驱动安装
目录 第1章 Windows XP 1 1.1 更新驱动 1 第2章 Windows 7 7 2.1 修改注册表 7 2.2 更新驱动 7 第1章 Windows XP ...
- libuv里的几个缺陷
libuv是node.js使用的基础库,主要包括主循环,文件和网络接口.虽然libuv是为node.js而生的,但它本身是一个独立的库,加上使用简单方便,所以在node.js之外也有不少人使用.最近整 ...