Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix MSI安装程序在服务启动时启动自动修复_Wix_Windows Installer - Fatal编程技术网

Wix MSI安装程序在服务启动时启动自动修复

Wix MSI安装程序在服务启动时启动自动修复,wix,windows-installer,Wix,Windows Installer,我有一个基于WiX的MSI,它安装了一个服务和一些快捷方式(以及许多其他不安装的文件) 快捷方式是按照中所述创建的,其中HKCU下的注册表项作为密钥文件。这是一个全用户安装,但要通过ICE38,此注册表项必须位于当前用户之下 当服务启动时(它在系统帐户下运行),它会注意到该注册表项无效(至少对该用户无效),并再次运行安装以“修复” 在事件日志中,我得到MSIInstall事件1001和1004,显示“资源'HKEY_CURRENT_USER\SOFTWARE\MyInstaller\Foo'不存

我有一个基于WiX的MSI,它安装了一个服务和一些快捷方式(以及许多其他不安装的文件)

快捷方式是按照中所述创建的,其中HKCU下的注册表项作为密钥文件。这是一个全用户安装,但要通过ICE38,此注册表项必须位于当前用户之下

当服务启动时(它在系统帐户下运行),它会注意到该注册表项无效(至少对该用户无效),并再次运行安装以“修复”

在事件日志中,我得到MSIInstall事件1001和1004,显示“资源'HKEY_CURRENT_USER\SOFTWARE\MyInstaller\Foo'不存在”。这并不奇怪,因为系统用户没有此密钥

我打开了系统范围的MSI日志记录,自动修复在C:\Windows\Temp文件夹中创建了它的日志文件,而不是特定用户的Temp文件夹,这似乎暗示当前用户是系统(加上日志文件显示“调用进程”是我的服务)


我可以做些什么来禁用自动修复功能吗?我是做错了什么还是违反了MSI规则?是否有关于下一步查找的提示?

将组件拆分为单独的功能。通过将服务置于其自身功能中,它不会扫描其他组件。

如果您使用广告快捷方式,则不需要HKCU注册表项。

为了避免看到的自动修复,但仍然具有相同的效果,这是一个确保每个用户都有一个程序(通常是配置HKCU注册表设置的配置程序或脚本)只运行一次的系统


(这是我几年前写的一篇文章,比较了不同的方法,如果你还没有猜到的话,它支持ActiveSetup…

你不能在文件系统中添加alluser开始菜单的快捷方式吗?这听起来可能有些奇怪,但在我工作的地方,我们实际上不喜欢广告/修复。我们的软件部署在这样的环境中:虽然我们缓存了软件,但客户不希望看到修复。