UWP App RequestRestartAsync在System.Private.Corelib

时间:2018-05-23 22:35:08

标签: c# .net uwp

我的计算机在Windows 10 build 16299上,这是CoreApplication.RequestRestartAsync(...)中UWP重启功能所需的最低版本。但是,在我使用string.Empty参数进行重新启动调用后,应用程序关闭,几秒钟之后,System.Private.CoreLib.dll抛出异常:

Exception occurred: System.Exception: Exception from HRESULT: 0x80040900
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()

我能够从Try / Catch块获取此信息,并在调试模式下从Visual Studio 2017运行应用程序。在我尝试捕获它之前,会出现一个对话框,指示在另一个Visual Studio实例中进行调试。加载另一个实例时,不允许这样做,因为它说已经附加了一个调试器。

此外,我尝试通过启用“公共语言运行时异常”来捕获它,但它没有捕获此异常。

为什么会这样?当我在另一台Windows 10机器上使用它时,重启工作正常。我可以在System.Private.CoreLib

中调试或获取有关异常的更多信息

1 个答案:

答案 0 :(得分:0)

当您安装应用程序并运行它而不连接Visual Studio进行调试时,此错误不会影响您的应用程序的真实体验。 Visual Studio阻止Windows挂起附加到调试器的应用程序。这是为了允许用户在应用程序运行时查看Visual Studio调试UI。使用Visual Studio调试此代码时,您可以在设备中看到应用程序状态仍为正在运行 任务管理器 =>调用此方法后详细信息选项卡,因此应用程序无法重新启动,因为在Windows 10版本1803之前,一次只能运行一个UWP应用程序实例。有关多实例UWP的更多详细信息,请参阅Create a multi-instance Universal Windows App

但是在我对设备操作系统版本1803操作系统版本17134和Visual Studio版本15.7的测试中,它会在您调用CoreApplication.RequestRestartAsync(string.Empty)代码后自动断开Visual Studio调试器。