【问题标题】:Inconsistent MSI behaviorMSI 行为不一致
【发布时间】:2020-12-21 23:55:14
【问题描述】:

我们使用 InstallAware 18。我注意到一些不一致的行为。

安装环境在我不知情的情况下发生变化。 如果我双击我构建的 MSI,我通常可以期待按用户安装。这对我们来说很好。 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MyApp.msi

但是,在 Powershell 脚本中测试 msi 几个小时后,MSI 最终执行了每台机器的安装 HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\MyApp.msi

注意:
即使我使用 msiexec.exe,我也会遇到这个问题。我没有使用命令行中的 ALLUSERS 属性,也没有在 MSI 中设置值。

【问题讨论】:

  • 日志说什么? On MSI logging and interpretation。并且显然检查属性表以验证 ALLUSERS 无论如何都没有设置在那里。也许工具突然添加了它?
  • @SteinÅsmul 我会重新查看日志。我对此还是比较陌生,而且那个日志文件让我有点困惑。
  • This annotated MSI log (PDF) 可能会有所帮助。另请参阅名为"Interpreting MSI Log Files" here 的整个部分以获取更多提示。在你的情况下,我会搜索ALLUSERS
  • @SteinÅsmul 再次感谢您。我正在翻阅文档,很明显的是,我的知识不足以提出正确的问题,因此我陷入了许多兔子洞。

标签: installation windows-installer installaware


【解决方案1】:

[归功于:Stein Asmul。他发布的链接给了我更好的问题,让我找到了最终的答案]

如果您自己没有将 ALLUSERS 属性设置为某个值,系统将选择它认为最好的任何值(例如,安装是以管理员身份运行,还是以普通用户身份运行)

现在,我在 MSI 脚本中将 ALLUSERS 设置为“TRUE”。当我双击该文件时,我会得到一个 Per-machine install。

注意:(/q 标志似乎忽略了“ALLUSERS”属性
msiexec.exe /i myapp.msi -- 获取每台机器的安装。
msiexec.exe /i myapp.msi /qn -- 获取每个用户的安装。

经过反复测试,我可以说 /q 肯定会导致 MSIEXEC.exe 忽略 ALLUERS=TRUE(或将其更改为 FALSE)。我不确定为什么。也许这是 InstallAware 产品所独有的;我不能确定;我还在学习中

【讨论】:

  • 检查产品注入 MSI 的默认自定义操作并检查其名称。看看他们中是否有人在调整 ALLUSERS 方面敲响了警钟。
  • @SteinÅsmul 我会这样做的。谢谢
猜你喜欢
  • 2015-08-05
  • 2013-12-17
  • 2018-08-27
  • 2016-01-13
  • 1970-01-01
  • 2019-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多