Windows services Windows Installer卸载服务时出错(无法打开未知密钥)

Windows services Windows Installer卸载服务时出错(无法打开未知密钥),windows-services,windows-installer,custom-action,Windows Services,Windows Installer,Custom Action,在卸载我正在开发的安装服务的VS2010安装项目时,我收到来自详细MSI日志记录的以下错误: MSI (c) (60:90) [13:37:59:038]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg Error 1402. Could not open key: UNKNOWN\Components\216B73E88467B322BBFF14C949E03D05\F1DB4DD

在卸载我正在开发的安装服务的VS2010安装项目时,我收到来自详细MSI日志记录的以下错误:

MSI (c) (60:90) [13:37:59:038]: Font created.  Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

Error 1402. Could not open key: UNKNOWN\Components\216B73E88467B322BBFF14C949E03D05\F1DB4DDE64042404E8863AB2CA9520DF. System error 5.
Verify that you have sufficient access to that key, or contact your support personnel.
MSI (s) (84:A4) [13:38:01:678]: User policy value 'DisableRollback' is 0
MSI (s) (84:A4) [13:38:01:678]: Machine policy value 'DisableRollback' is 0
Action ended 13:38:01: InstallExecute. Return value 3.
请注意,此服务是使用本地计算机帐户或域用户帐户安装的。它不使用内置帐户,如网络服务、本地系统或本地服务

使用Windows Installer详细日志分析器wilogutl,它告诉我这段代码是安装程序日志中的第一个错误。此外,它告诉我可能的解决方案:

标准动作或自定义动作 导致了失败

MSI s 84:A4[13:37:55:306]: 产品 {EDD4BD1F-4046-4042-8E68-A32BAC592FD} 管理好了。MSI s 84:A4 [13:37:55:306]:运行产品 “{EDD4BD1F-4046-4042-8E68-A32BAC592FD}” 具有提升的权限:产品是 分配的

我试着运行ProcMon来诊断问题,但没有成功。安装程序似乎运行没有问题。安装程序使用自定义的action C InstallerClass来安装服务。但是,系统无法在我的计算机上卸载该服务

更新1: 以下是日志中的人类可读错误:

(SERVER)     MSI (s) (84:A4) [13:38:02:186]: Product: MyService -- Removal failed. 
(UNKNOWN)      
(SERVER)     MSI (s) (84:A4) [13:38:02:186]: Windows Installer removed the product. Product Name: MyService. Product Version: 1.0.0. Product Language: 1033. Manufacturer: ManufacturerName. Removal success or error status: 1603. 
(UNKNOWN)      
(SERVER)     MSI (s) (84:A4) [13:38:02:187]: Deferring clean up of packages/files, if any exist 
(SERVER)     MSI (s) (84:A4) [13:38:02:187]: MainEngineThread is returning 1603 
尽管日志中没有显示,但错误1603可以解释为:

文件[2][3]正在使用中 通过以下过程:名称:[4], Id:[5],窗口标题:'[6]'


好的,我从另一个开发人员那里得到了一些帮助,问题是用于安装软件的用户帐户是一个域用户帐户,该帐户有权创建注册表项,但在卸载过程中没有删除注册表项的权限

此过程在注册表中留下了大量键,导致卸载/重新安装时出现问题

解决方案是将自己添加为计算机管理下的本地用户帐户。接下来,我必须将这个用户分配到Users and Administrators组,这只是为了更好地衡量。最后,我必须进入注册表,找到软件注册表项的所有残余,并强制删除它们

这绝非易事,因为当您右键单击并选择对键值的权限时,删除键值的过程涉及六个步骤:

授予管理员帐户的完全访问权限 授予对用户帐户的完全访问权限 单击高级并添加我的域用户帐户 转到所有者并尝试将管理员添加为所有者,同时应用递归子项 返回“用户”选项卡,授予我的域用户帐户完全控制权 单击OK和OK,然后我可以删除密钥
好的,我从另一个开发人员那里得到了一些帮助,问题是用于安装软件的用户帐户是一个域用户帐户,该帐户有权创建注册表项,但在卸载过程中没有删除注册表项的权限

此过程在注册表中留下了大量键,导致卸载/重新安装时出现问题

解决方案是将自己添加为计算机管理下的本地用户帐户。接下来,我必须将这个用户分配到Users and Administrators组,这只是为了更好地衡量。最后,我必须进入注册表,找到软件注册表项的所有残余,并强制删除它们

这绝非易事,因为当您右键单击并选择对键值的权限时,删除键值的过程涉及六个步骤:

授予管理员帐户的完全访问权限 授予对用户帐户的完全访问权限 单击高级并添加我的域用户帐户 转到所有者并尝试将管理员添加为所有者,同时应用递归子项 返回“用户”选项卡,授予我的域用户帐户完全控制权 单击OK和OK,然后我可以删除密钥
我认为其中一个软件包组件不知怎么被损坏了。你能发布一个完整日志的链接让我们看一下吗?我想其中一个包组件不知怎么被损坏了。你能帮我发一个完整日志的链接让我们看看吗?
(SERVER)     MSI (s) (84:A4) [13:38:02:186]: Product: MyService -- Removal failed. 
(UNKNOWN)      
(SERVER)     MSI (s) (84:A4) [13:38:02:186]: Windows Installer removed the product. Product Name: MyService. Product Version: 1.0.0. Product Language: 1033. Manufacturer: ManufacturerName. Removal success or error status: 1603. 
(UNKNOWN)      
(SERVER)     MSI (s) (84:A4) [13:38:02:187]: Deferring clean up of packages/files, if any exist 
(SERVER)     MSI (s) (84:A4) [13:38:02:187]: MainEngineThread is returning 1603