0

假设 MSI 包作为其安装的一部分写入 HKCU 注册表分支:

如果应用程序随后更改了这些值,或者这些值以其他方式更改,MSI 的自我修复机制是否会将这些值恢复为 MSI 所说的值?

4

1 回答 1

0

是的,只要你有一个触发弹性的机制。通常这是 COM 激活或广告快捷方式。它也可以是您放入应用程序以调用 MSI API 的代码。

如果您遇到像 Office 插件这样的情况,其中另一个进程托管您的代码并且您没有快捷方式或 COM 激活发生,您可以使用此技巧:

InstallTalk:使用 Active Setup 修复用户设置

还要意识到,对于 reocrd,这是一个相当繁重且有时令人讨厌的过程。如果需要文件,您必须确保您的 MSI 可用,并且用户在修复时会看到进度条。如果某件事失败了,它可能会一遍又一遍地发生。我在人们第一次登录的会议室中看到了这种情况,而 Office 无法进行修复。

另一种方法是将此要求转移到应用程序中,并使其负责在首次运行时更新用户配置文件本身。

此外,请意识到 MSI 无法在卸载时删除所有配置文件中的所有这些注册表值。这是不可能的,因为用户配置文件可能正在漫游和/或什至没有加载。

于 2012-02-16T14:49:42.083 回答