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之類的工具重新打包。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM