No, the Process class is smart about this. It internally uses the RegisteredWaitHandle class. Which is primarily used to ensure that the Exited event is raised. But also keeps a live reference to the parent object so it doesn't get garbage collected.
There are other classes in the framework that work like this, using various means to maintain the reference. A Winforms Form is a good example, a typical Winforms app never keeps a reference to the main form. It is kept alive by an internal table that maps handles to objects. The user closing the form kills the handle which gets it removed from that table which allows garbage collection.
A System.Timers.Timer is another one, kept alive by a cookie object that the CLR actually has knowledge of and keeps referenced while the timer is enabled. But not a System.Threading.Timer as a counter-example, it gets garbage collected while it is enabled if you don't keep a reference to it yourself.