即使log指示相反,MSI也不会编写注册表项

时间:2015-02-22 16:36:13

标签: wix windows-installer installer msiexec

我有一个WIX安装程序,它写了一组注册表项。现在有一个用户没有写入注册表项,即使安装程序日志没有显示错误。

此特定用户正常,并且这些注册表项已写入:

  

MSI(DC:D8)[11:43:29:329]:执行操作:   RegOpenKey(根= -2147483646,重点= SOFTWARE \微软\办公室\ Outlook中\加载项\ MySoftware ,, BinaryType = 0 ,,)   MSI(DC)(DC:D8)[11:43:29:329]:执行操作:   RegAddValue(Name = LoadBehavior,Value =#3,)WriteRegistryValues:Key:   \ SOFTWARE \ Microsoft \ Office \ Outlook \ Addins \ MySoftware,名称:   LoadBehavior,值:#3 MSI(s)(DC:D8)[11:43:29:330]:执行操作:   RegAddValue(Name = Description,Value = MySoftware Outlook Add-in,)   WriteRegistryValues:关键:   \ SOFTWARE \ Microsoft \ Office \ Outlook \ Addins \ MySoftware,名称:   描述,价值:MySoftware Outlook加载项MSI(DC:D8)   [11:43:29:331]:执行操作:   RegAddValue(Name = FriendlyName,Value = MySoftware Outlook Add-in,)   WriteRegistryValues:关键:   \ SOFTWARE \ Microsoft \ Office \ Outlook \ Addins \ MySoftware,名称:   FriendlyName,Value:MySoftware Outlook加载项

但是下面的部分无法正常工作,并且特定用户无法在注册表中的任何位置找到注册表项“SS_MySetting”:

  

MSI(DC:D8)[11:43:29:333]:执行操作:   RegOpenKey(根= -2147483646,密钥= SOFTWARE \策略\ MySoftware ,, BinaryType = 0 ,,)   MSI(s)(DC:D8)[11:43:29:334]:执行操作:   RegAddValue(Name = SS_MySetting,Value =#0,)WriteRegistryValues:Key:   \ SOFTWARE \ Policies \ MySoftware,名称:SS_MySetting,值:#0

MSI以提升模式运行(用户是Win7 64位计算机上的管理员),需要写入注册表的HKLM \ SOFTWARE \ Policies部分。

  

MSI(DC:D8)[11:43:29:015]:机器政策价值   'AlwaysInstallElevated'为0 MSI(DC:D8)[11:43:29:015]:用户   策略值'AlwaysInstallElevated'为0 MSI(s)(DC:D8)   [11:43:29:015]:产品安装会因为用户而提升   提供了提升的凭据和正在安装的产品   每台机器。 MSI(s)(DC:D8)[11:43:29:015]:运行产品   具有提升权限的'{myguid}':已分配产品。

任何线索为什么即使MSI日志文件指示相反,此特定用户的安装也不会写入注册表?有没有人见过类似的东西?

请注意,只有1个用户遇到此问题,而其他1000多个用户则没有。

非常感谢。

1 个答案:

答案 0 :(得分:2)

我从未在16年内看到过“错误”的MSI日志。赔率是:

1)你不明白32位和64位注册表配置单元(SOFTWARE \ vs SOFTWARE \ Wow6432node)之间的区别,并且看错了地方

2)MSI背后会出现一些自定义操作或其他进程,并将其撤消。

我在#1上的赔率为99%。