Cómo crear un proceso que sobreviva a su padre

Estoy intentando lanzar una aplicación de actualización externa para una plataforma que he desarrollado. La razón por la que me gustaría iniciar este actualizador es porque mi utilidad de configuración, que maneja las actualizaciones y la configuración de licencias para la plataforma, tiene dependencias compartidas con otros conjuntos en la carpeta donde se implementará la actualización. Por lo tanto, aunque puedo cambiar el nombre de la utilidad de configuración y sobrescribirla al implementar la actualización, no puedo cambiar el nombre ni sobrescribir las DLL de las que depende. Por lo tanto, la aplicación de actualización externa.

Estoy manejando toda la lógica de recopilación de actualizaciones en la utilidad de configuración, luego intento iniciar el actualizador para manejar las operaciones reales de copia / sobrescritura de archivos. Obviamente, debido a los problemas del archivo en uso, necesito la utilidad de configuración para salir justo después de que comience la actualización.

El problema que tengo es que estoy usando el método estándar de Process.Start para iniciar el actualizador, y tan pronto como la utilidad de configuración finaliza, el proceso del actualizador también se cancela.

¿Hay alguna manera de que pueda crear un Proceso que sobreviva a su padre o lanzar una aplicación externa que pueda ejecutarse más allá del programa que lo lanzó?

EDITAR:

Aparentemente, en mi aplicación de actualización, calculé mal el número de argumentos de línea de comando que se le pasaron. Debido a esto, el actualizador saldría inmediatamente. Malinterpreté esto para decir que la aplicación de inicio estaba matando el proceso "secundario", cuando en realidad no lo era.

Las respuestas a continuación son correctas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta