Wix-Dienst bei Deinstallation / Upgrade anhalten: Popup "Neustart" verhindern (Datei-in-Use-Situation)

Ich habe das Problem, dass sich der Neustart-Manager beim Deinstallieren (oder Aktualisieren) über eine in Verwendung befindliche Datei beschwert und daher einen Neustart erzwingt:

RESTART MANAGER: Detected that application with id 7000, friendly name 'javaw.exe', of type RmCritical and status 1 holds file[s] in use.
RESTART MANAGER: Did detect that a critical application holds file[s] in use, so a reboot will be necessary.

Der Service, über den sich RESTART MANAGER beschwert, ist ein Java-basierter Service. Der Dienst (hier myservice.exe genannt) startet rekursiv Java-Child-Prozesse:

Myservice.exe --run
↳ javaw.exe --someArguments
↳ someother.exe --someArguments
↳ javaw.exe --someMoreArguments

Das wix-Snippet für die Service-Definition:

<DirectoryRef Id="BINDIR">
        <Component Id="myservice.exe" Guid="PUT-GUID-HERE">
            <File Id="myservice.exe" KeyPath="yes" Vital="yes"
                  Source="SourceDir\bin\myservice.exe"/>
            <ServiceInstall Id="MyService" Type="ownProcess"
                            Vital="yes" Name="MyService" DisplayName="My Service"
                            Description="My Service" Start="auto" Account=".\LocalSystem"
                            ErrorControl="normal" Interactive="no" Arguments="--run"/>
            <ServiceControl Id="MyService" Name="MyService" Wait="yes" Remove="uninstall" Stop="uninstall" Start="install"/>
        </Component>
</DirectoryRef>

Nun, der interessante Teil:

Der Dienst konnte bei der Installation von @ gestartet werd

on uninstall:

wenn es nicht läuft, wird es entferntwenn ausgeführt wird und nur einem Neustart zustimmtit wird in der Tat innerhalb von 2-3 Sekunden gestoppt (ich schätze durch die StopServices-Aktion)und erfolgreich entfernt (durch RemoveServices-Aktion)

Die Einträge in den Service * -Tabellen scheinen mir bisher gut zu sein.

ServiceControl-Table:
ServiceControl  Name       Event  Arguments  Wait  Component_
MyService       MyService  161               1     myservice.exe

ServiceInstall-Table:
ServiceInstall  Name       DisplayName  ServiceType StartType ErrorControl LoadOrderGroup Dependencies StartName Password Arguments Component_     Description
MyService       MyService  My Service   16          2         32769        .\LocalSystem                                  --run     myservice.exe  My Service


So, um alles aufzuschlüsseln: Es scheint, dass der Neustart-Manager nicht erkennt, dass die Java-Prozesse untergeordnete Prozesse sind und von der StopServices-Aktion gestoppt werden.

Ich habe hier ähnliche Probleme gefunden:https: //www.mail-archive.com/[email protected]/msg57924.htm
Wix Installer Problem: Warum markiert RestartManager Service als RMCritical und nicht als RMService

Vielen Dank im Voraus für jede Hilfe, um dieses Problem zu lösen!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage