[英]Python Service - Wix MSI Installer - Auto Start on bootup not working
[英]MSI Installer start auto-repair when service starts
我有一个基于WiX的MSI,可安装服务和一些快捷方式(以及许多其他快捷方式)。
按照WiX文档中的描述创建快捷方式,并在HKCU下将注册表项作为密钥文件。 这是所有用户的安装,但要通过ICE38,此注册表项必须在当前用户下。
服务启动时(以SYSTEM帐户运行),它会注意到该注册表项无效(至少对该用户有效),然后再次运行安装以“修复”。
在事件日志中,我得到MsiInstaller事件1001和1004,显示“资源'HKEY_CURRENT_USER \\ SOFTWARE \\ MyInstaller \\ Foo'不存在”。 这并不奇怪,因为SYSTEM用户将没有此密钥。
我打开了系统范围的MSI日志记录,自动修复功能在C:\\ Windows \\ Temp文件夹而不是特定用户的TEMP文件夹中创建了其日志文件,这似乎暗示当前用户是SYSTEM(加上日志文件显示“流程”作为我的服务)。
我可以做些什么来禁用自动修复功能? 我是在做错什么还是违反了MSI规则? 关于下一步的任何提示?
将组件拆分为单独的功能。 通过将服务置于自己的功能中,它将不会扫描其他组件。
如果使用公告的快捷方式,则不需要HKCU注册表项。
为了避免看到的自动修复,但仍具有相同的效果, 可以使用ActiveSetup ,它是一个简单的系统,可确保每个用户都有一个程序-通常是配置程序或配置HKCU注册表设置的脚本-只运行一次。
( 上面链接的第一篇文章 ,我几年前写的东西,比较了不同的方法,如果您还没有猜到的话,则倾向于ActiveSetup ...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.