パッケージ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はこのことでよく知られています。特に、彼らが作成したこのすべての新しい技術では、エラー制御の割り当てを緩めました。ビルドデバッグではなくリモートデバッグが役立つ場合があります。私は今IoTをセットアップして、いくつかの問題を解決するつもりです。私が試すことができるコードを共有したい場合は、.NETに関する長年の経験があります。または、どこかでスタックダンプにアクセスしてみてください。
Piotr Kula

アプリを自動起動するには、Powershellを使用して、いくつかのレジストリ設定を設定する必要があります。アプリを入手したら、この質問に答えます。
Piotr Kula

図をありがとう...次のチェックボックスをオンにした後の手順を実行した後に現在発生しているエラー「起動しない...」は、出力タイプ「Windowsランタイムコンポーネント」がプロジェクトの1つ以上のターゲットでサポートされていません
fifamaniac04

x86ではなくアームが選択されていることを確認してください
Piotr Kula

ここで説明されているように、シリアルポートを使用してデバッグできます。ms-iot.github.io/content/en-US/win10/Windbg.htm
Piotr Kula

回答:


10

やったー!

わかったので、ついに手に入れた...

これは、ヘッドレスアプリを1つだけ展開することで機能しました。

手順1:管理者としてPowershellを開く

ステップ2:このコマンドを使用して、ボードに接続しますnet start WinRM... NOTE私はラズベリーパイ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>

step9:powershellで...タイプ:setbootoption headless....成功した場合、再起動するように求められます

step10:powershellで...タイプ:shutdown /r /t 0...これにより、デバイスがすぐに再起動します

--DONE ....ここから、アプリがキックオフするのを待ちます!私は単純なLEDプログラムを持っていましたが、再起動後、それは最終的にそれ自体で始まりました。


私もこの方法を使うことができました。マイクロソフトは、Web UIから実行できないようにする根本的な問題を修正する必要があります。
ジェイミーキーリング

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(画面を使用するアプリの場合)または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からクラッシュダンプを表示できますが、それらのダンプファイルはカーネル固有であり、デバッグが非常に面倒な場合があります。これには、エラーメッセージや、わかりやすいスタックダンプは含まれていません。 詳細についてはこちらをご覧ください。Visual2015では.dmpファイルを開くことができませんでした。コミュニティエディションが原因である可能性があります。しかし、私のPro 2013でも開けません。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.