Я пытаюсь запустить внешнее приложение обновления для разработанной мной платформы. Причина, по которой я хотел бы запустить это средство обновления, заключается в том, что моя утилита конфигурации, которая обрабатывает обновления и конфигурацию лицензии для платформы, имеет общие зависимости с другими сборками в папке, в которой будет развернуто обновление. Поэтому, хотя я могу переименовать утилиту конфигурации и перезаписать ее при развертывании обновления, я не могу переименовать или перезаписать библиотеки DLL, от которых это зависит. Следовательно, приложение внешнего обновления.
Я обрабатываю всю логику сбора обновлений в утилите конфигурирования, затем пытаюсь запустить программу обновления для обработки фактических операций копирования / перезаписи файла. Очевидно, что из-за проблем с используемым файлом мне нужна утилита конфигурирования, чтобы выйти сразу после запуска программы обновления.
Проблема, с которой я столкнулся, заключается в том, что я использую стандартный метод Process.Start для запуска программы обновления, и, как только утилита конфигурирования завершает работу, процесс программы обновления также уничтожается.
Можно ли каким-либо образом создать Процесс, который переживет своего родителя, или запустить внешнее приложение, которое может работать за пределами программы, которая его запустила?
EDIT:
По-видимому, в моем приложении для обновления я просчитал количество аргументов командной строки, которые ему передаются. Из-за этого программа обновления немедленно завершит работу. Я неверно истолковал это, чтобы означать, что приложение запуска убивало «дочерний» процесс, хотя на самом деле это не так.
Ответы ниже верны.