0

我有 exe 文件,需要将其转换为 msi 并使用组策略在域中的更多计算机上安装它,而无需用户交互。

我找到了本教程https://stackoverflow.com/questions/19271862/wix-how-to-run-exe-files-after-installation-from-installed-directory/19274431# =

但这使用 UI,用户必须单击按钮。我需要安装 msi 启动 exe 文件并在后台安装到计算机 - 没有任何 ui。

可能吗?如何。

感谢帮助。

4

2 回答 2

1

不要在 MSI 文件中嵌入安装程序可执行文件

好的,这个问题不是 100% 清楚的,但我会试一试。以这种方式交付 EXE 文件(嵌入在 MSI 文件中)并不理想。事实上,这是一个非常糟糕的主意——说实话。MSI 文件通常不应仅用作提供嵌入式 setup.exe 文件的包装器。MSI 及其先进的模拟、排序和调节的绝对复杂性使得这种方法非常容易出错并且难以实施和测试。此外,如果您嵌入的二进制文件是一个包含在 setup.exe 二进制文件中的 MSI 文件,则 MSI 将失败,因为它不允许两个并发安装序列 - 除非您从用户界面序列安装它们(这不会'静默运行时不起作用)。


静默运行 setup.exe 文件还是使用应用程序重新打包?

MSI 文件在静默模式(无 GUI)下可靠运行的能力无法与传统样式设置相匹配。但是,您通常可以找到旧版(或现代)setup.exe或安装二进制文件的开关,这将允许它以静默模式安装,但不能使用 MSI 提升的安装权限。您必须以真正的管理员权限运行。此外,您经常必须通过对话框“记录”一次运行并使用记录的响应来运行安装序列 - 这很容易出错,因为在没有记录“响应”的地方可能会出现意外的对话框。然后你就卡住了。MSI 可靠的静音运行是 MSI 的主要企业优势之一

您可以在我不久前写的这个答案中找到很多关于此的信息:如何使用 powershell 运行安装程序?. 不要让问题标题让您感到困惑,这个问题仍然与您所问的非常相似 - 至少我是这样认为的。请至少快速浏览一下。

答案还描述了“应用程序重新打包”——将传统(或现代)setup.exe 安装程序转换为原生 MSI 格式的过程。这是一项需要对 MSI 有深入了解的专业任务,但一旦正确完成,就会产生出色的结果,而且静默安装轻而易举,因为您不依赖上述脆弱的“静默响应文件”。


引导程序/链接器

虽然我不确定它们是否都允许您以静默模式安装,但有一些工具可以让您从启动程序 EXE 文件中按顺序安装 MSI 文件和安装二进制文件。这里还有另一个讨论各种引导程序选项的答案:Wix and .NET Framework (prerequisites)。本讨论中推荐的引导程序之一是dotNetInstaller。我从来没有用过它,所以我不能告诉你它是否有任何好处。它可能比 WiX 自己的称为Burn的引导程序功能更基于 GUI,但是我不确定它是否在功能方面是匹配的。如果您进行测试,请报告您的发现。当然还有其他引导者,但这不是我的专业领域。诸如 Installshield 之类的商业工具(至少在其高级版本中)具有使用 GUI 构建此类引导程序的功能,我认为它们将它们称为“安装套件”或类似的东西。本质上只是一组安装程序和先决条件。我没有在 Advanced Installer 中尝试过这个引导程序功能

关于刻录:

  • Burn 基于 XML 标记和编译 - 通常使用 Visual Studio。
  • 以下是如何使用 Burn 安装 .NET Framework的说明。
  • Burn 的官方文档
  • 如您所见,它比允许您使用 GUI 构建安装程序序列或“链”的工具更复杂一些。
  • 它是免费且可靠的。
  • 我会尝试为你挖掘一个 Burn 样本。
  • 好的,这应该是 Burn 可以做的一个好的示例:https ://github.com/frederiksen/Classic-WiX-Burn-Theme 。我认为,此示例中有一些重复的 Visual Studio 项目 GUID,但这对您来说应该不是问题,除非您出于某种原因将两个项目都添加到构建过程中(然后重复的 GUID 可能会混淆您的构建工具 - 只是曾经发生在我身上的事情)。
  • 为了清楚起见,Burn 构建了 setup.exe 引导程序包,能够包含 MSI 文件和 EXE 文件,它们以给定的顺序运行,它是 WiX 工具包的一部分。WiX 本身从 WiX XML 源文件构建 MSI 文件。刻录 setup.exe 文件也是从 WiX XML 源文件构建的,但架构明显不同。只为那些从未见过这些工具的人准备。上面的示例将很好地显示 WiX MSI 项目和 WiX Burn 项目的差异。它还有一个项目来构建二进制文件,然后将其包含在 MSI 和 setup.exe 中。
于 2018-01-08T20:32:56.040 回答
0

由于 MSI 安装通常遵循Standard Installer Command-Line Options,因此您可以将/quiet其用作抑制 UI 的选项,安装程序只会“执行”。

于 2018-01-08T11:00:33.260 回答