“安装目录必须在本地驱动器上” msi 安装错误

Joh*_*dal 4 windows-installer wix

我们组织中的一些用户在安装我们的产品时开始报告一个奇怪的错误(从屏幕截图中删除了产品详细信息):

丹麦错误消息的屏幕截图

英文的原始错误消息是“安装目录必须在本地驱动器上”。

将路径更改为没有空格、备用根文件夹甚至机器上的其他物理驱动器的内容不会改变任何内容。安装程序仍然坚持该路径不是本地路径。

此安装程序是使用 WIX 创建的,过程中的特定步骤是使用自定义操作创建的WixUIValidatePath之前已经提交了一个错误,这也表明该错误与安装程序的限制有关(感谢 GitHub 上的 peterflynn 为我指出了这个方向)。

该问题仅出现在某些计算机上,并且似乎没有人在 Windows 10 中遇到此问题。我无法测试它是否出现在 8.1 的其他 Windows 版本中,因为该版本和 Windows 10 是我们唯一的版本跑。

Joh*_*dal 6

经过大量调试后,我们将其范围缩小到当前用户对临时文件夹的权限问题。不同的步骤在不同的计算机上解决了这个问题。在这里,我将列出从侵入性最小到侵入性最大的修复方法:

  1. 确保以管理员身份运行安装程序
    这是我们已经需要的,但有些用户往往会忘记这一点。这也是我在搜索解决方案时发现的问题的最常见解决方案。
    确保这一点的最简单方法是按WinKey和 键入cmd以找到命令提示符,然后按CTRL + SHIFT + ENTER以管理员身份打开命令提示符,然后导航到 msi 文件夹(有关导航说明,请参阅此链接)并从那里运行它.
  2. 手动安装 KB3072630
    由于某种原因,我们的一些用户没有正确收到来自 MS 的此特定更新,这似乎解决了问题!这是大多数用户解决问题的地方。
  3. 静默运行安装程序
    该漏洞与 WIX UI 组件有关,因此静默运行 MSI 不会激活 UI 组件,因此也不会触发该漏洞。您可以通过上述步骤中指定的命令提示符执行此操作,但将这些添加到 MSI 的参数:
    /qn+
    感谢 GitHub 上的 Kr3m 提供此方法
  4. 在禁用 UI 检查的情况下运行安装程序
    也可以禁用导致所有问题的 WIX UI 组件。警告:这也将禁用对安装路径的任何健全性检查,并且可能会扰乱安装过程!这可以通过另一个命令行参数来完成:
    WIXUI_DONTVALIDATEPATH="1"
    感谢 GitHub 上的 peterflynn 提供的这种方法
  5. 禁用 LUA
    唯一确定的消除问题的方法是完全禁用 LUA,这是我们某些环境的标准,以便能够使用旧功能。完全禁用 LUA 需要手动更改注册表,因此请确保您知道自己在做什么,以及它的后果。可以在 MS 论坛上找到说明

我们没有测试的一件事也可能解决它,那就是在计算机上重新创建用户,因为我们认为这与用户自己的临时文件夹的访问权限有关。它们可能会通过用户的重新创建正确地重新创建。