我正在寻找与Application.Restart()等效的控制台应用程序,但似乎找不到这样做的方法。
其他人建议我在需要重启时简单地用Args调用我的Sub Main。然而,我需要物理重启应用程序的功能的原因是因为我做的第一件事是检查更新并安装它们,如果它们是可用的。
更新技术本身运行良好,系统会安装新的更新,但更改在下次应用程序运行之前不会生效。
由于应用程序从批处理文件作为计划任务每周运行一次,因此我发布的任何更新都不会在两周内生效!
我在Windows窗体应用程序中遇到了同样的问题,但是调用Application.Restart的功能允许立即进行更改。创建控制台应用程序时可以实现相同的目的吗?
答案 0 :(得分:1)
2我能想到的可能性。
首先启动应用程序的另一个实例,然后使用类似
的内容关闭当前实例System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
和
Environment.Exit(int exitCode)
如果由于某些原因无法同时运行2个实例,则可以创建另一个由批处理启动的应用程序。让它运行你的应用程序并让它获得一个信息,如果更新过程完成,所以它可以先关闭当前的应用程序,然后再运行一个