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

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

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

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

可能吗? 怎么样。

感谢帮助。

MSI安装通常遵循以下内容: https : //msdn.microsoft.com/en-us/library/windows/desktop/aa372024(v = vs。85)。aspx ,因此您可以使用/ quiet作为选项来抑制用户界面和它只是“做它”

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

好的,问题不是100%明确,但我会试一试。 以这种方式提供EXE文件 – 嵌入在MSI文件中 – 并不理想。 事实上,这是一个非常糟糕的主意 – 说实话。 通常不应将MSI文件用作包装器来提供嵌入式setup.exe文件。 MSI的高度复杂性以及先进的模拟,排序和调节使得这非常容易出错并且难以实施和测试。 此外,如果您嵌入的二进制文件是一个包含在setup.exe二进制文件中的MSI文件,那么MSI将失败,因为它不允许两个并发安装序列 – 除非您从用户界面序列安装它们(赢得了’无声地运行时工作)。


静默运行setup.exe文件还是使用Application Repackaging?

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

您可以在我刚才写的这个答案中找到很多相关信息: 如何使用PowerShell运行安装程序? 。 不要让问题标题混淆你,问题仍然与你提出的问题非常相似 – 至少我是这么认为的。 请至少快速涂抹。

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


Bootstrappers / Chainers

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

关于Burn:

  • 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 bootstrapper包,它能够包含以给定顺序运行的MSI文件和EXE文件,它是WiX工具包的一部分。 WiX本身从WiX XML源文件构建MSI文件。 Burn setup.exe文件也是从WiX XML源文件构建的,但架构显然不同。 仅适用于从未见过这些工具的人。 上面的示例将与WiX MSI项目和WiX Burn项目很好地显示出差异。 它还有一个构建二进制文件的项目,然后包含在MSI和setup.exe中。