System.Windows.Forms.Application'不包含' ExecutablePath的定义

时间:2014-06-21 15:27:34

标签: c# .net compact-framework

我正在使用紧凑的框架3.5来构建一个Windows移动应用程序。我需要在保存应用程序设置后重新启动应用程序。我从How do I restart my C# WinForm Application?

尝试了下面的一个
   string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
Process.Start(path, "");

我没有收到任何错误,但我的应用程序没有重新启动。我正在检查我的模拟器。重新启动在移动模拟器中工作。

需要解决方案来解决这个问题。

由于

2 个答案:

答案 0 :(得分:3)

尝试使用此代码访问路径:

string path;
path = System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);

但是要重新启动应用程序,您可以使用RunAppAtTime方法:

var time = DateTime.Now.AddSeconds(3); // immediate restart
Notify.RunAppAtTime(thisName, time);   // restart the app

请注意,虽然时间设置为3秒,但它会立即重启。要实现真正的延迟,时差必须大于10秒。 更多相关内容:https://stackoverflow.com/a/6133136/3330348

答案 1 :(得分:1)

.net应用程序无法重启。由于它在Mobile上运行,因此框架只能确保一个实例,如果您已经定位了Windows CE,则可以运行多个实例。

因此,RunAppAtTime是一个很好的解决方案,让应用程序本身使用Application.Exit()终止后,移动调度程序启动应用程序。

另一个选项是在Application.Exit()启动的第二个应用程序,监视进程列表以查看主应用程序何时终止(或使用GetProcessExitCode),然后启动主应用程序的新实例。这项技术用于更新等。