So erstellen Sie einen Prozess, der seinen übergeordneten Prozess überlebt

Ich versuche, eine externe Updater-Anwendung für eine von mir entwickelte Plattform zu starten. Der Grund, warum ich diesen Updater starten möchte, ist, dass mein Konfigurationsdienstprogramm, das Updates und Lizenzkonfigurationen für die Plattform verwaltet, Abhängigkeiten mit anderen Assemblys in dem Ordner gemeinsam hat, in dem das Update bereitgestellt wird. Während ich das Konfigurationsdienstprogramm beim Bereitstellen des Updates umbenennen und überschreiben kann, kann ich die DLLs, von denen es abhängt, weder umbenennen noch überschreiben. Daher die externe Updater-Anwendung.

Ich bearbeite die gesamte Logik zum Sammeln von Updates im Konfigurationsdienstprogramm und versuche dann, den Updater zu starten, um die eigentlichen Dateikopier- / Überschreibvorgänge durchzuführen. Offensichtlich muss das Konfigurationsprogramm aufgrund der Probleme mit der verwendeten Datei sofort beendet werden, nachdem der Updater gestartet wurde.

Das Problem besteht darin, dass ich die standardmäßige Process.Start-Methode zum Starten des Updaters verwende. Sobald das Konfigurationsdienstprogramm beendet wird, wird auch der Updater-Prozess beendet.

Gibt es eine Möglichkeit, einen Prozess zu erstellen, der seinen übergeordneten Prozess überlebt, oder eine externe Anwendung zu starten, die über das Programm hinaus ausgeführt werden kann, mit dem er gestartet wurde?

BEARBEITEN:

Anscheinend habe ich in meiner Updater-Anwendung die Anzahl der Befehlszeilenargumente, die an sie übergeben werden, falsch berechnet. Aus diesem Grund würde der Updater sofort beendet. Ich habe das falsch interpretiert, um zu bedeuten, dass die Launcher-Anwendung den "Kind" -Prozess beendet hat, obwohl dies nicht der Fall war.

Die folgenden Antworten sind richtig.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage