卸载导致Windows 10 1703上出现1603错误

时间:2017-09-20 19:37:38

标签: c# .net windows-installer advanced-installer

我们有一个Windows 10 1607图像,我们的应用程序是通过Advanced Installer安装的。

然后我们将应用更新为新版本,更新工作为例外。

但是,如果我们使用Windows 10 1703映像执行相同的过程,则我们的应用程序升级将失败,并显示以下错误:

MSI (s) (58:B8) [16:12:02:846]: Note: 1: 2769 2: ShopInstallClass_x64 3: 1 
Error 1001. Error 1001. The specified service has been marked for deletion
Info 2769. Custom Action ShopInstallClass_x64 did not close 1 MSIHANDLEs.
CustomAction ShopInstallClass_x64 returned actual error code 1603 (note this 
may not be 100% accurate if translation happened inside sandbox)
MSI (s) (58:EC) [16:12:02:858]: Note: 1: 2265 2:  3: -2147287035    
MSI (s) (58:EC) [16:12:02:860]: User policy value 'DisableRollback' is 0
MSI (s) (58:EC) [16:12:02:860]: Machine policy value 'DisableRollback' is 0
Action ended 16:12:02: InstallExecute. Return value 3

上面的自定义操作是指正在卸载然后使用新更新重新安装的Windows服务。我尝试了一个停止服务,甚至是一个停止过程,看看它是否可行(可能是处理左开),安装程序仍无效。

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

自定义操作中的代码已崩溃,我假设您知道这一点。如果没有显示更多的日志,也不清楚它在升级中的位置,如果实际上当你说“更新”时你指的是一次重大升级。在一次重大升级中,新产品的安装和旧产品的卸载 - 这个崩溃发生在哪个顺序?您的ShopInstall类也可能是安装服务的安装程序类,这是不必要的,因为Windows Installer具有ServiceInstall操作。

话虽如此,消息“指定的服务已标记为删除”意味着代码正在尝试对已禁用的服务执行某些操作。因此,看起来先前已尝试卸载该服务,并且该服务未正常关闭或停止。在这种情况下,Windows将标记服务已禁用,然后重新启动将最终删除它。与此同时,如果某些东西试图对该服务做某事,它将失败并出现“待定删除”错误。因此,您必须返回到尝试卸载的任何内容以及无法首先停止的原因,然后卸载该服务。