.Net 程序是应用域里面的,所以无法单个进程自动重启。你需要写个守护进程。
比如,你现在的是控制台程序 A,那么你要写个守护程序 B。当你打算 A 重启的时候,由 A 启动 B,然后 B 等 A 结束,然后 B 启动 A,然后 B 退出。
思路大致如上。
先说思路:
1、获取当前程序的可执行文件的路径
2、运行该路径(保险起见,可以不直接运行该路径,而是创建该可执行文件的快捷方式,并运行该快捷方式,在本程序结束前,删除快捷方式;但这与本问题关系不大,请自行百度)
3、关闭当前程序
代码如下:(先引用程序集:System.Windows.Forms)
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace 命名空间_
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("按下回车键后重启本程序……");
Console.ReadLine();
string path = Application.ExecutablePath;//获取可执行文件路径
Process.Start(path);//再次运行程序
Environment.Exit(0);//关闭当前程序
}
}
}