我开发了带传感器的监控系统。应用程序必须运行365天,24小时。
现在,我正在测试长期运行的应用程序。为了防止暂停,我写了这个。
<Capabilities>
<Capability Name="internetClient" />
<!--<rescap:Capability Name="runFullTrust" />-->
<rescap:Capability Name="extendedBackgroundTaskTime" />
<rescap:Capability Name="extendedExecutionUnconstrained" />
<DeviceCapability Name="serialcommunication">
<Device Id="any">
<Function Type="name:serialPort" />
</Device>
</DeviceCapability>
我也添加了这段代码。
Window.Current.CoreWindow.Activated -= CoreWindow_OnActivated;
Window.Current.CoreWindow.Activated += CoreWindow_OnActivated;
private void CoreWindow_OnActivated(CoreWindow sender, WindowActivatedEventArgs args)
{
// This seems to be the last chance we get to enable extended execution when going to the background.
// Trying this on OnVisibilityChanged, OnEnteredBackground, or OnSuspending is too late.
if ((null != args) && (CoreWindowActivationState.Deactivated == args.WindowActivationState))
{
ExtendedExecutionManager.Instance.BeginExtendedExecutionIfNeeded();
}
}
在第一次测试中,我的应用程序可以运行3天21小时。但是,在没有任何错误的情况下,它已经关闭,没有任何事件查看器日志。
这是UWP应用的限制吗?
应用程序安装为Sideloaded包。
更新1:
当我进行侧载应用时,我检查了这个。但是Eventviewer没有Exception记录。有没有办法知道UWP应用程序崩溃日志?
更新2
我试图测试小型UWP应用程序并故意抛出异常。 使用,在侧载包中没有PDB文件时,EventViewer会捕获&#34; Applicaton Error&#34;。但是我的应用程序在eventViewer上没有任何消息而崩溃了......
我想说为什么......但没有人可以回复..... 请给我更多评论。
要使用WPF进行重建,这是不可能的,需要6个月才能完成!
(第一个错误是在侧载中使用PDB文件。最后一个错误是没有PDB)
答案 0 :(得分:0)
我最终选择了以下想法。
像这样的批处理文件。
@echo off
start shell:AppsFolder\2313d654-0c37-461f-ae1e-31336dde7fb3_sasbmbdd83txa!App
关闭UWP应用程序后,免费软件立即重启! 对我来说,这已经足够了。
谢谢Stackoverflow用户!