Jak stworzyć proces, który przeżyje swojego rodzica

Próbuję uruchomić zewnętrzną aplikację Updater dla platformy, którą stworzyłem. Powodem, dla którego chciałbym uruchomić ten aktualizator, jest to, że moje narzędzie konfiguracyjne, które obsługuje aktualizacje i konfigurację licencji dla platformy, współdzieliło zależności z innymi zespołami w folderze, w którym aktualizacja zostanie wdrożona. Tak więc, podczas gdy mogę zmienić nazwę narzędzia konfiguracyjnego i nadpisać je podczas wdrażania aktualizacji, nie mogę zmienić nazwy lub nadpisać bibliotek DLL, od których zależy. Stąd zewnętrzna aplikacja aktualizująca.

Obsługuję całą logikę gromadzenia aktualizacji w narzędziu konfiguracyjnym, a następnie próbuję uruchomić aktualizator, aby obsłużyć rzeczywiste operacje kopiowania / nadpisywania plików. Oczywiście, z powodu problemów z plikiem, potrzebuję narzędzia konfiguracyjnego, aby wyjść zaraz po rozpoczęciu aktualizacji.

Problem, który mam, jest to, że używam standardowej metody Process.Start uruchamiania aktualizatora, a gdy tylko narzędzie konfiguracyjne zakończy działanie, proces aktualizacji zostanie również zabity.

Czy jest jakiś sposób, w jaki mogę stworzyć Proces, który przeżyje jego rodzica, lub uruchomić zewnętrzną aplikację, która może działać poza programem, który go uruchomił?

EDYTOWAĆ:

Najwyraźniej w mojej aplikacji aktualizującej błędnie obliczyłem liczbę argumentów wiersza poleceń, które są do niego przekazywane. Z tego powodu aktualizator natychmiast się wyłączy. Źle to zinterpretowałem, co oznacza, że ​​aplikacja uruchamiająca zabijała proces „dziecięcy”, podczas gdy w rzeczywistości tak nie było.

Odpowiedzi poniżej są poprawne.

questionAnswers(3)

yourAnswerToTheQuestion