Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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/.net/22.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
C# 在windows 10 1703上卸载导致1603错误_C#_.net_Windows Installer_Advanced Installer - Fatal编程技术网

C# 在windows 10 1703上卸载导致1603错误

C# 在windows 10 1703上卸载导致1603错误,c#,.net,windows-installer,advanced-installer,C#,.net,Windows Installer,Advanced Installer,我们的应用程序通过高级安装程序安装了一个Windows101607映像 然后,我们将应用程序更新为新版本,更新工作正常 但是,如果我们使用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 mar

我们的应用程序通过高级安装程序安装了一个Windows101607映像

然后,我们将应用程序更新为新版本,更新工作正常

但是,如果我们使用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服务,然后使用新更新重新安装。我试着停止服务,甚至停止进程,看看这是否可行(可能是句柄保持打开),但安装程序仍然不起作用


知道为什么会发生这种情况吗?

自定义操作中的代码已经崩溃,我想您知道。在没有显示更多日志的情况下,也不清楚升级发生在何处,如果您在说“更新”时实际上指的是重大升级。在一次主要的升级中,安装了新产品,卸载了旧产品——这一系列的崩溃发生在哪里?您的ShopInstall类也可能是安装服务的安装程序类,这是不必要的,因为Windows installer具有用于安装服务的ServiceInstall操作


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

如果是安装程序正在删除该服务,则可能只是按照正确的顺序执行操作:您必须停止该服务,并且您可能需要等待它实际停止,然后才能删除它。我暂时记不起详细信息,但我注意到Windows 10对具有挂起删除的服务的行为与Windows 7不同。如果它在1703年又发生了变化,那也就不太奇怪了。@PhilDW:我没有编写安装程序,我正试图帮助解决这个问题,所以请原谅我没有像我应该解释的那样解释它。是的,您是对的,该产品已卸载,然后与新产品一起重新安装(使用相同的密钥)。我确实注意到有一些.jar文件似乎并没有发布(我们的应用程序使用.net到Java的桥)。我将尝试了解更多关于这方面的内容,但目前是否有一种方法可以在未正确卸载该服务时终止该服务,或者终止该服务,然后进行安装,这样就没有jar/句柄了?