问题情景:你的情景是什么?
- 您是否正在接管旧设置的处理和更新并需要将其转换为适当的格式?
- 您是否尝试重新打包第三方供应商 setup.exe?
- 您是否试图获取 CAB 中的文件?或者只是提取文件,以便可以以其他方式重新打包它们。出于某种原因?
- 您是否尝试在静音模式下尽可能轻松可靠地安装整个 shebang?
- 其他问题场景?
静默运行?:如果您只需要静默安装,那么大多数 setup.exe 包装器都有命令行开关这将允许您执行此操作,但用于创建 setup.exe 文件的每个工具都不同。 Installshield 的 setup.exe 文件需要一个静默响应文件,其他工具的做法不同。 I wrote about Installshield silent uninstall a couple of days ago。还有here is a piece on regular silent install and various types of Installshield setup.exe files。
记录响应文件:
Setup.exe /r /f1”c:\temp\my-answer-file.iss”
基本静默安装:
Setup.exe /s /f1”c:\temp\my-answer-file.iss”
如果setup.exe 是 MSI 的包装器,并且您有一个分发系统可用来分发必备组件,那么如果您在公司环境中,通常最好提取 MSI 并使用MSI 中的标准功能以静默运行(msiexec.exe 的 /QN 开关):
msiexec.exe /I "C:\Your.msi" /QN /L*V "C:\msilog.log" TRANSFORMS="C:\1031.mst;C:\My.mst"
快速参数说明:
/I = run install sequence
/QN = run completely silently
/L*V "C:\msilog.log" = verbose logging
TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst (see below).
文件提取?:从 setup.exe 中提取文件可能具有挑战性,也可能非常容易。这取决于它是用什么构建的,这几乎可以是“任何东西”——从已建立的部署工具到“任何人”制作的专有软件。要从各种类型的 setup.exe 中提取文件,您可以在此答案中找到大量信息:
基本上您使用 setup.exe /stage_only 来安装 Installshield Suite 可执行文件。 setup.exe /a 用于基本 MSI 和 Installscript MSI 可执行文件。 setup.exe /s /extract_all 用于旧版 Installscript 可执行文件。说明如下。
MSI 导入:如果您设法提取文件并在那里看到一个 MSI 文件,
那么您应该能够导入或打开该 MSI 文件
Installshield(或其他部署工具)。
我将尝试提取选项的快速“短名单”(不确定这是否是您真正需要的):
已经是 MSI?:你知道 setup.exe 包含什么吗?从技术上讲,它可能已经是包含 MSI 文件的包装器,或者它可能是某些旧版部署工具的输出,而根本不是 Windows 安装程序。让我们列出几个选项:
-
Administrative Installation:尝试在命令提示符下执行
setup.exe /a 以查看是否出现“提取文件”对话框。如果是这样,请指定输出位置并提取所有文件。这表示一个 MSI 安装程序包含在 setup.exe 中
-
安装脚本设置:尝试从命令提示符执行
setup.exe /s /extract_all 以查看是否可以从 CAB 中提取文件。这适用于 Installscript 设置。或者也试试 /extract_all:[path]。
-
Installshield Suite Setups:尝试在命令提示符下执行
setup.exe /stage_only。 Lots of elaborate details here。
-
Advanced Installer:试试
setup.exe /extract "C:\My work"或setup.exe /x
-
WiX:从命令提示符尝试以下操作:
dark.exe -x outputfolder setup.exe。只能使用框架本身的 dark.exe 工具提取 WiX setup.exe 文件。换句话说,您需要安装 WiX 才能提取 WiX setup.exe(截至目前)。
-
Wise:Wise 不再销售,但许多旧设置仍然存在。您可以尝试使用
setup.exe /X [path] 提取文件。
-
Repackaging:从旧式的传统 setup.exe 安装程序创建 MSI 包的一种方法是使用Application Repackaging Tool 在运行 setup.exe 时监控对系统所做的更改。
不可能涵盖所有不同种类的 setup.exe 文件。它们可能具有各种不同的命令行开关。 There are so many possible tools that can be used。 (non-MSI、MSI、admin-tools、multi-platform 等...)。
Inno Setup 等常用工具似乎很难提取(unofficial unpacker,我没试过,由 virustotal 运行)。而NSIS 似乎使用标准存档软件可以打开的常规存档。
一般技巧:一个技巧是启动 setup.exe 并在 1) 系统的临时文件夹中查找提取的文件。另一个技巧是使用 2) 7-Zip、WinRAR、WinZip 或类似的存档工具来查看它们是否可以读取该格式。有些人声称通过 3) 在 Visual Studio 中打开 setup.exe 取得了成功。不是我使用的技术。
一些链接: