Wix - 如何在没有 UI 的情况下运行/安装应用程序

2023-11-24

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

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

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

是否可以?如何。

感谢帮助。


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

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


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

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

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

答案还描述了“应用程序重新打包“ - 将旧版(或现代)setup.exe 安装程序转换为本机 MSI 格式的过程。这是一项专业任务,需要充分了解 MSI,但一旦正确完成,就会产生出色的结果,并且静默安装非常简单,因为您不依赖如上所述,脆弱的“无声响应文件”。


引导程序/链式程序

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

关于刻录:

  • 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 文件。 Burn setup.exe 文件也是从 WiX XML 源文件构建的,但架构明显不同。仅供那些从未见过这些工具的人使用。上面的示例将很好地显示 WiX MSI 项目和 WiX Burn 项目的差异。它还具有一个用于构建二进制文件的项目,然后将其包含在 MSI 和 setup.exe 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wix - 如何在没有 UI 的情况下运行/安装应用程序 的相关文章

随机推荐