Restart application using C#

I don't think there's a direct method in WPF like there is in WinForms. However, you could use methods from the Windowns.Form namespace like this: (You might need to add a reference to the System.Windows.Form assembly)

System.Windows.Forms.Application.Restart();

System.Windows.Application.Current.Shutdown();

The following is the best solution I found, you don't need to add a reference to System.Windows.Forms, instead you need add the namespace System.Diagnostics which you already has a reference to its assembly:

Process.Start(Application.ResourceAssembly.Location);
Application.Current.Shutdown();

The code

Process.Start(Application.ResourceAssembly.Location);

does not work for .NET Core 3.1 applications. Instead use

using System.Diagnostics;
using System.Windows;

...

Process.Start(Process.GetCurrentProcess().MainModule.FileName);
Application.Current.Shutdown();

This works also for .NET Framework applications.

Tags:

C#

Wpf