【问题标题】:convert msi to exe with a command line option...使用命令行选项将 msi 转换为 exe...
【发布时间】:2015-01-02 20:24:40
【问题描述】:

我想将 msi 文件转换为 exe 文件。当我使用 msiexec 运行带有 qn 选项的 msi 文件时,我的软件会静默安装。但是现在我想将该 msi 文件转换为 .exe 文件,并且该 exe 文件使用 msiexec /i "path of msi file" /qn 选项运行 msi 文件,任何想好怎么做。

【问题讨论】:

  • 我想 WinZip 和自解压 exe 可以做到这一点。
  • 如何定义命令行选项以静默运行
  • 客户端不想自己解压exe,只想下载,双击后自动安装..
  • 是您创建了 msi,还是第三方创建的?如果你创造了它,你用了什么? (WiX、InstallShield、Nullsoft 等)
  • 我正在使用 install shield 来创建 msi

标签: c# command-line windows-installer


【解决方案1】:

我们可以使用 7zip SFX 创建无开关安装程序。这是一个快速浏览

要求

  • 7Zip:您可以从Official Site下载最新版本的7zip。

  • 7Zip SFX模块:官方下载页面为here

  • Resource Hacker 或任何其他资源编辑器(可选):如果您想为最终的可执行文件使用自定义图标,您应该使用资源编辑器应用程序并将图标替换为您想要的一。这是来自其开发者网站的 Resource Hacker 应用程序download link

第一步:

在您的msi 文件的同一文件夹中创建一个exec.bat 文件并将您的msiexec /i "path of msi file" /qn 复制到其中。我使用 Installer.msi 作为示例,所以这是我的文件:

@Echo off
msiexec /i installer.msi /qn

第二步:

msibat 文件压缩到7z 存档。(您可以从here 下载并安装7zip)在我压缩我的Installer.msiexec.batinstaller.7z 存档。

第三步:

下载并解压 7zSD(来自 7zSfx 链接)并将文件放在存档的同一文件夹中,这里是 direct link

第四步(可选):

我们可以更改安装程序的图标,为此我们应该替换7zsd.sfx 文件的图标,在资源黑客中我们应该打开7zsd.sfx 并到达IconGroup > 101 > 1049 并将图标替换为所需的图标。然后将新的 sfx 文件保存在生成​​的 7z 存档的同一文件夹中。我将我的保存为 7zsdInstaller.sfx

第五步:

我们应该创建一个配置文件来告诉Sfx 文件解压后要做什么,这里是示例的配置文件:

;!@Install@!UTF-8!
GUIFlags="8+32"
ExtractDialogText="My Sample Installer"
RunProgram="exec.bat"
;!@InstallEnd@!

我们应该将它保存在 7z 存档的同一文件夹中,我将其命名为 config.txt

第六步:

现在我们应该将我们的文件合并为一个可执行文件,为此,首先我们应该将命令提示符导航到保存生成文件的文件夹,然后我们应该执行以下命令:

copy /b 7zsdInstaller.sfx + config.txt + Installer.7z "installer.exe"

现在我们应该在同一个文件夹中有一个installer.exe

【讨论】:

  • @AnoopMishra,我更新了答案,您应该从提供的链接下载并安装 7zip,然后选择这两个文件,并使用 7zip 压缩器进行压缩
  • @KostiaMololkin %errorlevel% 应该可以解决问题,例如 echo %errorlevel% 打印在批处理文件中执行的最后一个命令的退出代码
  • 但是当我放入 exec.bat @Echo off msiexec /i installer.msi /qn exit %errorlevel%
  • @KostiaMololkin 这是一个伪环境变量,你应该先执行你的命令,然后检查%errorlevel%关于执行的信息,所以从逻辑上讲,它应该在你的命令之后的以下单独的行中。
【解决方案2】:

如果您自己使用 Installshield 进行设置,该工具本身应该能够通过简单地在 中设置发布设置来创建 setup.exe 文件>release wizard - 我认为它只需要设置发布“压缩”,但可能需要进一步设置。

请准确关注these help file instructions。某些版本的 Installshield(express、旧版本等)可能没有此选项,但坦率地说,我对此表示怀疑。一看就知道应该有。

也许还可以看到 this youtube.com demonstration of the release wizard 和这个以前的 stackoverflow 问题:HowTo create InstallShield MSI with no files needed locally?

【讨论】:

    【解决方案3】:

    您应该使用flexa软件的安装盾产品。您可以将您的 msi 压缩成 .exe,并在安装时使用所有支持的文件进行提取。

    【讨论】:

    • 这是一个转换问题,无需购买/使用沉重的InstallShield
    猜你喜欢
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    相关资源
    最近更新 更多