2017-09-20 5 views
1

Nous avons une image Windows 10 1607 avec notre application installée via Advanced Installer.Désinstaller mène à l'erreur 1603 sur Windows 10 1703

Nous avons ensuite mis à jour l'application vers une nouvelle version et la mise à jour a fonctionné comme prévu.

Cependant, si nous faisons la même procédure, mais avec une image de Windows 10 1703, la mise à niveau de notre application échoue avec l'erreur suivante:

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 

L'action personnalisée fait référence ci-dessus à un service Windows qui est désinstallée puis réinstallé avec la nouvelle mise à jour. J'ai essayé de mettre un service d'arrêt et même un processus d'arrêt pour voir si cela fonctionnerait (peut-être manipule laissé ouvert) et l'installateur ne fonctionnait toujours pas.

Des idées pour lesquelles cela se passe?

Répondre

1

Le code de l'action personnalisée s'est bloqué, je suppose que vous le savez. Sans montrer plus du journal, il n'est pas clair non plus où cela se passe dans la mise à niveau, si en fait vous faites référence à une mise à niveau majeure lorsque vous dites "mise à jour". Dans une mise à niveau majeure, il y a une installation du nouveau produit et une désinstallation de l'ancien - où se produit ce crash dans cette séquence? Il est également possible que votre classe ShopInstall soit une classe d'installateur pour installer un service, ce qui n'est pas nécessaire car Windows Installer a des actions ServiceInstall pour cela. Cela dit, le message "Le service spécifié a été marqué pour la suppression" implique que le code tente de faire quelque chose à un service désactivé. Il semble donc qu'une désinstallation précédente du service ait été tentée et que le service ne s'est pas arrêté ou ne s'est pas arrêté correctement. Dans ce cas, Windows marquera le service désactivé, puis un redémarrage le supprimera définitivement. En attendant, si quelque chose essaie de faire quelque chose avec ce service, il échouera avec l'erreur "en attente de suppression". Donc, vous devrez revenir à la désinstallation qui a été tentée et pourquoi elle a échoué au premier arrêt, puis désinstallez le service.

+0

Si c'est le programme d'installation qui supprime le service, il peut s'agir simplement de faire les choses dans le bon ordre: vous devez arrêter le service, et vous devrez peut-être attendre qu'il s'arrête, avant de le supprimer . Je ne me souviens pas des détails, mais j'ai remarqué que Windows 10 se comporte différemment des services qui ont une suppression en attente que Windows 7. Ce ne serait pas trop surprenant si elle a encore changé en 1703. –

+0

@PhilDW: Je n'ai pas écrit l'installateur et j'essaie de l'aider, alors pardonnez-moi de ne pas l'avoir expliqué comme il se doit. Oui, vous avez raison, le produit est désinstallé puis réinstallé avec le nouveau produit (en utilisant la même clé). J'ai remarqué qu'il y avait des fichiers .jar qui ne semblaient pas être des versions (notre application utilise un pont .net vers Java). Je vais essayer de comprendre plus à ce sujet mais pour l'instant est-il un moyen de tuer le service si ce n'est pas désinstallé correctement ou de le tuer puis installez donc il n'y a pas de pot/poignée traînant? –