如何将基于WiX的windows安装程序限制为仅静默安装?

如何将基于WiX的windows安装程序限制为仅静默安装?,windows,wix,installation,silent-installer,Windows,Wix,Installation,Silent Installer,WiX可以通过传递一个标志以静默方式安装,但我是否可以将安装设计为默认情况下静默运行、需要该标志或以其他方式阻止用户尝试非静默方式安装 原因:这将作为一个可分发版本发布,供其他软件项目包括在其应用程序中,我们希望避免任何本地化/ui问题等的预期。您可以编译一个完全没有GUI的安装程序。然后它将直接安装时,你启动微星我相信。坦率地说,我不确定这是否能与UAC(提升提示符)一起正常工作,但我认为它确实可以 正如我在中所回答的,您还可以使用合并模块,允许您的安装内容在构建/编译时合并到另一个安装中,而

WiX可以通过传递一个标志以静默方式安装,但我是否可以将安装设计为默认情况下静默运行、需要该标志或以其他方式阻止用户尝试非静默方式安装


原因:这将作为一个可分发版本发布,供其他软件项目包括在其应用程序中,我们希望避免任何本地化/ui问题等的预期。

您可以编译一个完全没有GUI的安装程序。然后它将直接安装时,你启动微星我相信。坦率地说,我不确定这是否能与UAC(提升提示符)一起正常工作,但我认为它确实可以

正如我在中所回答的,您还可以使用合并模块,允许您的安装内容在构建/编译时合并到另一个安装中,而不是单独作为一个安装运行

如果你想要一个MSI,我认为如果你不将设置本地化到各种语言,那就没那么重要了。只需链接一个默认的英文GUI。你甚至可以包括据我所知(自从我做真正的本地化以来已经有好几年了)


真正的问题是,您的客户可以在他们自己的setup.exe中轻松地以静默模式启动安装,因此您的安装GUI将永远不会显示—对于您的客户来说,这样他们就知道如何进行安装。

“安装GUI将永远不会显示”--除了进度和错误消息,这些消息可能会显示在“主”安装程序的自定义UI中。因此,将WiX工具集中的“现成翻译”(请参阅本文中的链接)包含在它所支持的所有语言中是有意义的。如果您有任何发送进度和/或错误消息的自定义操作,您可能也希望对其进行本地化。“您还可以使用合并模块”--我建议不要将模块合并为可再发行文件。如果您包含的合并模块中存在任何问题,它可能并且将使您的整个设置失败,客户将为此责备您的安装程序。分析问题也很困难,因为合并模块与您自己的设置逻辑混合在一起。将其与单独运行于主设置的独立可再发行版本进行比较。客户可以从原始制造商处下载更新的版本,您可以获得一个单独的安装日志,简化错误分析。是的,我在另一个答案(链接)中指出了这一点。本质上是通过提供您自己的MSI(或其他一些自安装机制)来进行分发来解除耦合。然后,您可以随时自己更新它,并将其分发给客户端,而无需使用嵌入式合并模块重建所有设置。因此,合并模块是紧密耦合的。但是,应该指出的是,一个包含更新的合并模块的单一设置将更新所讨论的框中所有包的运行时。我告诉自己,这是一种奇怪的“静态链接”,但这也不准确。更高版本的wins.GUI:我相信通过使用for
msiexec.exe
,安装程序确实可以完全静音,完全没有GUI,甚至没有错误消息?(除非ERRONOOS CA GUI出现)。我不确定在实现自己的外部GUI(抑制内部GUI)并连接到消息时,是否会显示一些内容。我从来没有试过。而且,如果您想在GUI模式下运行,那么添加的任何自定义GUI都必须由您自己进行本地化。感谢您的评论,当我们认为太多是理所当然的时候,很好地澄清了一些事情。还有矩阵中的小故障:
REINSTALLMODE=“amus”
。我写了一整篇文章(但不是共享的,它太疯狂了),讨论了这个疯狂的构造的影响,其中一篇是合并模块降级共享文件(即使是共享的Windows文件,除非它们在下面)。