/quiet 和 /qn 选项似乎不适用于使用 WIX 创建的安装程序的 /x{guid}

/quiet and /qn options don't seem to work for /x{guid} for an installer created with WIX

已编辑,我发现它在以管理员身份执行时确实有效

请多多关照,我对 Wix 安装程序还是很陌生,所以我不太清楚如何有效地提出这个问题。

话虽如此....

我创建了一个 .wixproj,它工作正常。当我 运行 它生成的 .msi 时,它会安装产品并且所有文件都在那里。产品 ID 设置为 {guid}。

当我 运行 msiexec.exe /x{guid} 它工作正常。它显示 UI 询问用户是否要卸载该产品,当他们确认时,它会卸载它。

当我 运行 msiexec.exe /x{guid} /passive 它工作正常。 UI 弹出并向用户显示它正在卸载产品。

作为管理员: 当我 运行 msiexec.exe /x{guid} /q 它工作只要我 运行 它具有提升的权限,例如从命令提示已启动 “以管理员身份”

不是管理员: 当我 运行 msiexec.exe /x{guid} /qn 或 /quiet 或 /qn /passive .... 它直接 returns 到命令行,产品保持安装状态,尽管我 安装了 没有提升权限的产品。

是否可以在我的 .wxs 文件中设置一些 属性 让 msiexec /x{guid} /q 工作,即使它是由没有提升权限的用户调用的?

我很乐意在此处添加我的 .wxs 文件中的代码片段,但我不确定要包含哪些内容。这是其中一部分:

<Product Id="guid here"
         Name="our name here"
         Language="1033"
         Version="5.9.2.65"
         Manufacturer="our company here"
         UpgradeCode="a different guid here">
    <Package InstallerVersion="500"
             Compressed="yes"
             InstallScope="perMachine"
             Platform="x86" />

您的 MSI 已声明 perMachine(请参阅 Package/@InstallScope)。如果您希望包能够由 non-administrators 管理,那么您需要将其更改为 perUser.

注意:per-user 包将不会提示提升,因此将无法安装到 per-machine 个位置。

我不清楚你在没有管理权限或提升提示的情况下安装了 perMachine 包,但你没有在你的问题中提供相关细节。

PS:None 其中是关于 WiX 工具集的。这都是关于 Windows 安装程序行为的。