开发C#.NET 2.0 WinForm应用程序.需要应用程序关闭并重新启动自身.
Application.Restart();
上述方法已被证明是不可靠的.
什么是重启应用程序的更好方法?
我有一个.Net windows表单应用程序,其中很多变量在Main_Load事件中初始化,我有一种情况,我希望我的数据库被重新查询,所有变量设置为null并重新初始化(基本上形式为100%从一开始就重新加载了),但是我用这样的方式编写了我的Main-Load(我的错),这样做并不容易......
我知道我能得到正是我想要通过简单地调用Application.Restart它的伎俩漂亮,但我不知道这是良好的编程习惯或认为非常糟糕.
Application.Restart在这种情况下使用我是否会遇到任何问题?
我有一个像这样的ClickOnce环境:
\文件服务器\ ClickOnceApps\App1.application
C:\ Documents and Settings\user\Start Menu\Programs\publisher\app1.appref-ms
我的理解是.apppref-ms文件是app.application文件的美化链接.它还有什么用吗?
我直接从MSDN中删除了代码.这会更新我的应用程序,但Restart()不起作用.应用程序关闭,但不会重新启动.
我添加了一个MenuItem来Form验证它的Restart()工作原理:
private void restartToolStripMenuItem_Click(object sender, EventArgs e)
{
    Application.Restart();
}
这将重新启动应用程序(当然,它不执行任何更新并且是用户启动的,因此它是相当无用的).
我没有其他任何与此应用程序相关的事情.关闭时没有表单的事件处理程序,没有.这是最基本的Windows窗体应用程序,我可以建立(它只是显示一个资源JPEG中的ImagePanel).
为什么Restart()不在这里工作?
我有一个内部装有安装程序的应用程序,我想为此重新加载与该应用程序相关的所有内容。我搜索并看到了Application.Restart()及其缺点,并想知道什么是执行我所需的最佳方法-关闭进程并重新启动它。或者是否有更好的方法来重新初始化所有对象。
此问题与如何重新启动应用程序无关.我已经通过使用Mutex和辅助启动器应用程序实现了这一目标.在使用Application.Restart遇到一些问题后,我不得不求助于此.
无论如何,我不熟悉IL,我想知道是否有人可以解释Application.Restart的工作原理.它是对运行时的调用,但运行时究竟做了什么?它如何关闭现有实例以及它如何知道何时启动新实例?