Paket Window10 IoT konnte nicht gestartet werden


11

Ich habe eine kopflose App in C # für den Raspberry Pi 2 B entwickelt.

Ich kann die App in Visual Studio problemlos debuggen. Ich habe ein Ethernet-Kabel direkt zwischen meiner Workstation und der Karte angeschlossen. Wenn ich in meinem Browser navigiere zu: minwinpc:8080/AppXManager.htmIch kann das gewünschte Programm in der Liste der installierten Apps sehen. Ich habe versucht, es zu entfernen, in VS neu zu erstellen / neu bereitzustellen, und die App verlässt die Liste und kehrt von der Liste zurück. Daher weiß ich, dass es die aktuelle Version ist.

Das Problem ist: Ich kann es nicht über die Web-GUI auf "Start" bringen. Ich wähle meine App aus und erhalte dann den folgenden Fehler:

Failed to start package BlinkyHeadlessCS-uwp_q8jk9dv1tcdg!App

Wie kann ich festlegen, dass mein Blinkprogramm über die Web-Benutzeroberfläche gestartet wird, und wie kann ich es nach dem Start automatisch ausführen lassen?


Muss eine Ausnahme sein, die beim Start der App ausgelöst wird. Leider ist MS dafür bekannt, vor allem bei all den neuen Technologien, die sie entwickelt haben. Vielleicht hilft Remote-Debug, nicht Build-Debug,. Ich richte jetzt IoT ein und werde einiges tun. Wenn Sie Ihren Code teilen möchten, kann ich versuchen, Ihnen zu helfen. Ich habe langjährige Erfahrung mit .NET-Inhalten. Oder versuchen Sie, irgendwo auf einen Stack-Dump zuzugreifen.
Piotr Kula

Um die App automatisch zu starten, müssen Sie Powershell verwenden und einige Registrierungseinstellungen vornehmen. Ich werde versuchen, diese Frage zu beantworten, sobald ich eine App in Betrieb genommen habe.
Piotr Kula

Vielen Dank für die Diagramme. Der Fehler, den ich jetzt erhalte, nachdem ich die folgenden Schritte zum Aktivieren des Kontrollkästchens "Nicht starten ..." ausgeführt habe, lautet: Der Ausgabetyp "Windows-Laufzeitkomponente" wird von einem oder mehreren Projektzielen nicht unterstützt
fifamaniac04

Stellen Sie sicher, dass Arm ausgewählt ist und nicht x86
Piotr Kula

Sie können über die hier beschriebene serielle Schnittstelle debuggen. Sie sind sich jedoch nicht sicher, wie viele sinnvolle Daten Sie möglicherweise erhalten. ms-iot.github.io/content/en-US/win10/Windbg.htm
Piotr Kula

Antworten:


10

WOOO HOOO !!!!

OK, also habe ich es endlich verstanden ...

Dies hat bei mir funktioniert, wenn nur eine (1) Headless-App bereitgestellt wurde.

Schritt 1: Öffnen Sie Powershell als Administrator

Schritt 2: Stellen Sie mit diesem Befehl eine Verbindung zur Karte her: net start WinRM... HINWEIS Ich hatte ein Ethernet-Kabel direkt von meinem Laptop zur Himbeer-Pi-2-Karte. HINWEIS Wenn Sie VS bereits ausgeführt haben, wird Ihnen mitgeteilt, dass Sie bereits eine Verbindung hergestellt haben ...

Schritt 3: Führen Sie in Powershell das nächste Mal aus Set-Item WSMan:\localhost\Client\TrustedHosts -Value minwinpc... Ich habe den Standardnamen für mein Gerät beibehalten . HINWEIS Wenn Sie dazu aufgefordert werden, geben Sie 'Y' ein.

Schritt 4: Enter-PSSession -ComputerName minwinpc -Credential minwinpc\Administrator... HINWEIS Sie werden zur Eingabe des Kennworts aufgefordert. Wenn Sie die Standardeinstellung annehmen, geben Sie "p @ ssw0rd" ein - ja, Groß- und Kleinschreibung beachten

Schritt 5: Warte eine Weile ... im Ernst, es dauert einen Moment ...

Schritt 6: In Powershell wird nun der Gerätename in der Eingabeaufforderung angezeigt. Geben Sie den folgenden Befehl ein: IotStartup remove

Schritt 7: Geben Sie in Powershell ... Folgendes ein: IotStartup list..., um den Namen der kopflosen App zu erhalten, die Sie standardmäßig verwenden möchten.

Schritt 8: In Powershell ... Typ: IotStartup add headless <the-exact-full-name-of-the-headless-app-here>

Schritt 9: Geben Sie in Powershell ... Folgendes ein: setbootoption headless.... Dies fordert Sie bei Erfolg zum Neustart auf

Schritt 10: Geben Sie in Powershell ... Folgendes ein: shutdown /r /t 0... dies führt dazu, dass Ihr Gerät sofort neu gestartet wird

- FERTIG .... von hier aus warten Sie nur, bis Ihre App startet! Ich hatte ein einfaches LED-Programm und es startete schließlich von selbst nach dem Neustart.


Ich konnte diese Methode auch anwenden. Microsoft sollte das zugrunde liegende Problem beheben, das Sie daran hindert, es über die Web-Benutzeroberfläche auszuführen.
Jamie Keeling

1

Sie können von Visual Studio aus eine Verbindung zu Ihrer App herstellen. (Nur Debuggen, Release scheint nicht zu funktionieren)

  • Öffnen Sie Visual Studio mit dem Quellcode Ihres Projekts
  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt.
  • Gehen Sie zu Debug
  • Kreuzen Sie das an Do not launch, but debug my code when it starts
  • speichern
  • Klicken Sie auf "Remote Machine" ausführen
  • Die App wird bereitgestellt, aber nicht ausgeführt.
  • Führen Sie es also auf dem Pi oder über das WebGui aus, und hoffentlich bricht Visual Studio bei dem Fehler ab, sodass Sie eine viel bessere Vorstellung davon haben, was falsch läuft.

Wenn Ihre App beim Debuggen keinen Ausnahmebruchpunkt erreicht, aber dennoch eine Fehlermeldung angezeigt wird, ist etwas anderes fehlerhaft. Möglicherweise hat Ihre SD-Karte Dateien beschädigt? Versuchen Sie es mit einer anderen SD-Karte und einer Neuinstallation

Autostart-App

Sie können dies über das WebGui Now

Geben Sie hier die Bildbeschreibung ein

Oder Sie können mit SSH oder Powershell eine Verbindung zur IoT-Powershell-Befehlszeile herstellen. Ich denke, SSH ist einfacher.

  • Listen Sie die installierten Apps auf. Sie können Ihren App-Namen optional als Filter angeben
  • Verwenden Sie den Befehl add headed(für Apps, die einen Bildschirm verwenden) oder headless(für kopflose Apps) und den appName, wenn das Ergebnis zuvor ein einzelnes Element oder stattdessen den vollständigen seltsamen Namen warheader :
  • Neustart

Befehle:

  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

und um die Standard-App zurückzusetzen

  iotstartup add headed DefaultApp

Weitere Debugging-Optionen

Sie können auch eine Verbindung zu einem beliebigen Remote-Prozess herstellen, ohne ein Projekt zu öffnen und einfach auf die AttachWiedergabetaste zu klicken . Dies funktioniert jedoch nicht gut, wenn es beim Start abgestürzt ist, kann aber funktionieren, wenn eine App jedes Mal an einem bestimmten Ort abstürzt.

Geben Sie hier die Bildbeschreibung ein

Sie können den Absturzspeicherauszug über die WebGUI unter Debuggen anzeigen, aber diese Speicherauszugsdateien sind kernelspezifisch und können beim Debuggen sehr mühsam sein. Dies beinhaltet keine Fehlermeldungen oder leicht verständlichen Stapelspeicherauszüge. Weitere Informationen hier , obwohl ich .dmpin Visual 2015 keine Datei öffnen konnte , möglicherweise weil es sich um die Community-Edition handelt. Aber selbst mein Pro 2013 wird es nicht öffnen.

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.