无法启动Window10 IoT软件包


11

我有一个为Raspberry Pi 2 B用C#开发的无头应用程序。

我可以在Visual Studio中调试该应用程序。我的工作站和主板之间直接连接了以太网电缆。当我在浏览器中导航到:minwinpc:8080/AppXManager.htm我可以在已安装的应用列表中看到我想要的程序。我试图将其删除,在VS中进行重建/重新部署,然后该应用程序退出并从列表中返回。因此,我知道它的当前版本。

问题是:我无法从Web GUI将其转到“开始”。我选择了我的应用,然后出现以下错误:

Failed to start package BlinkyHeadlessCS-uwp_q8jk9dv1tcdg!App

如何设置眨眼程序从Web UI启动,然后如何在启动后使其自动运行?


必须是应用程序启动时抛出的异常。不幸的是,MS为此而闻名,特别是在他们制造的所有这项新技术上,他们都放慢了对错误控制的分配。也许远程调试而不是构建调试可能会有所帮助。我现在正在设置物联网,并要做一些工作。如果您希望共享您的代码,我可以尝试并提供帮助,我在.NET方面已有多年的经验。或者尝试访问某个地方的堆栈转储。
Piotr Kula 2015年

要自动启动该应用程序,您需要使用Powershell并设置一些注册表设置。我收到应用程序后,将尝试回答此问题。
Piotr Kula 2015年

感谢您的图表...按照下面的复选框“不启动...”中的步骤操作后,我现在遇到的错误是一个或多个项目目标不支持输出类型“ Windows运行时组件”
fifamaniac15年

确保选择了手臂而不是x86
Piotr Kula 2015年

您可以按照此处所述使用串行端口进行调试。.但不确定这样做能获得多少敏感数据。ms-iot.github.io/content/zh-CN/win10/Windbg.htm
Piotr Kula

Answers:


10

呜呜!!!

好,我终于明白了...

这是仅部署一(1)个Headless应用对我有效的方法。

步骤1:以管理员身份打开Powershell

步骤2:使用以下命令连接至开发板:net start WinRM... 注意我有一条以太网电缆直接从笔记本电脑连接至raspberry pi 2开发板。注意如果您已经在运行VS,它将告诉您已经建立了连接...

第3步:在Powershell中,运行下一步Set-Item WSMan:\localhost\Client\TrustedHosts -Value minwinpc...我为设备保留了默认名称。注意提示时,键入“ Y”

步骤4:Enter-PSSession -ComputerName minwinpc -Credential minwinpc\Administrator... 注意将提示您输入密码...假设是默认密码,请输入“ p @ ssw0rd”-是的,区分大小写

第5步:稍等片刻...认真地花一点时间...

步骤6:在Powershell中,您现在将在提示符下看到设备名称-键入以下命令: IotStartup remove

第7步:在powershell中...输入:IotStartup list...从中我们想获取您想要默认设置的无头应用程序的名称。

步骤8:在Powershell中...输入: IotStartup add headless <the-exact-full-name-of-the-headless-app-here>

步骤9:在powershell中...键入:setbootoption headless...。这将提示您如果成功重启

步骤10:在powershell中...输入:shutdown /r /t 0...这将导致设备立即重新启动

--DONE ....从这里开始,等您的应用程序启动!我有一个简单的LED程序,它在重新启动后最终自行启动。


我也能够使用这种方法。Microsoft应该解决导致您无法从Web UI进行操作的根本问题。
Jamie Keeling 2015年

1

您可以从Visual Studio附加到您的应用程序。(仅调试,发布似乎不起作用)

  • 使用项目的源代码打开Visual Studio
  • 在解决方案资源管理器中的项目上,右键单击它。
  • 去调试
  • 勾选 Do not launch, but debug my code when it starts
  • 保存
  • 点击“远程计算机”上的运行
  • 它将部署该应用程序,但不会运行它。
  • 因此,可以在Pi上或通过WebGui运行它,并希望Visual Studio会因错误而中断,从而使您更好地了解出了什么问题。

如果您的应用在调试时未达到异常中断点,但您仍然收到错误,则说明该错误已损坏。也许您的SD卡已损坏文件?尝试另一张SD卡并重新安装

自动启动应用

您可以通过WebGui Now

在此处输入图片说明

或者您可以使用SSH或Powershell连接到IoT powershell命令行,我认为SSH更容易。

  • 列出已安装的应用程序,您可以选择提供您的应用程序名称作为过滤器
  • 如果之前的结果是单个项目或完整的名字headed,则使用add (对于使用屏幕的应用程序)或headless(对于无头的应用程序)命令和appNameheader :
  • 重新开始

命令:

  iotstartup list <optional:appname>
  iotstartup add headed:headless 64e9d643-619e-40e0-91b0-8e54f3e32aa8_953wxc6k7hb7r!App
  # AppID changed to your 64e9d643-619e-40e0-91b0-8e54f3e32aa8_953wxc6k7hb7r!App
  shutdown /r /t 0

并重置默认应用

  iotstartup add headed DefaultApp

更多调试选项

您也可以附加到任何远程进程,而无需打开任何项目,只需单击“ Attach播放”按钮即可。但是,如果它在启动时崩溃,将无法正常工作,但是如果应用程序每次在特定位置崩溃,则可能会起作用。

在此处输入图片说明

您可以从WebGUI的“调试”下查看故障转储,但是这些转储文件是特定于内核的,调试起来非常繁琐。这不包括任何错误消息,也不容易理解堆栈转储。 在此处获得更多信息,尽管我无法.dmp在Visual 2015中打开任何文件,可能是因为其社区版。但是,即使我的Pro 2013也无法打开它。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.