2017-03-28 9 views
2

私のUWPアプリケーションでは、UpdateTaskのコードをどのようにデバッグできますか? VS 2017の[Lifecycle Events]ドロップダウンは、この種のバックグラウンドタスクをトリガする選択肢を提供していないようです。これを達成する方法はありますか?UWP UpdateTaskをデバッグする方法は?

答えて

3

UWPのUpdateTaskにまずいくつかのコンテキスト:それは、あなたのアプリがあなたのUWPが更新を受信したときにシステムによってトリガを取得するために実装することができますバックグラウンドタスクです。更新されたアプリケーションパッケージのコードをバックグラウンドプロセスで実行するので、特定の更新に関連するすべての保守(データ構造の変更など)を処理することができます。アプリのUpdateTaskを設定するには次の2つのことを行う必要があります

A)APPXマニフェストでUpdateTaskを宣言します。

<Extension Category="windows.updateTask" EntryPoint="BackgroundTasks.UpdateTask" /> 

b)のタイプでタスクを実装してWindowsランタイムコンポーネントを追加します。 EntryPoint宣言と一致し、アプリケーションプロジェクトからコンポーネントを参照します。

enter image description here

更新手順をデバッグする前に、最初のアプリのあなたの最初のバージョンが展開されていることを確認します。そして、このようなあなたのプロジェクトのプロパティでデバッグ設定を変更します。

enter image description here

次に、UpdateTaskがトリガーされますことを確認するために、マニフェストエディタでパッケージのバージョン番号を増やし:

enter image description here

VS 2017でF5キーを押すと、アプリケーションが更新され、システムはUpdateTaskコンポーネントをバックグラウンドでアクティブにします。デバッガは自動的にバックグラウンドプロセスにアタッチされます。ブレークポイントがヒットし、更新コードのロジック(私の例では単にトースト)を実行することができます。

enter image description here

バックグラウンドタスクが完了すると、あなたは今も同じデバッグセッション中にアプリのリストからフォアグラウンドのアプリを起動することができます。デバッガはもう一度自動的にフォアグラウンドプロセスに接続し、メインのアプリケーションロジックをステップ実行できます。あなたが引き金とUpdateTaskをテストするために、同じ技術を使用することができますVS 2015を使用していますが、VSは、それに接続しない場合は上記のVS 2017に適用され :VS 2015ユーザーのため

ノート。 VS 2015の別の手順は、Entry Pointと同じUpdateTaskを持つApplicationTriggerをセットアップし、フォアグラウンドアプリから直接実行をトリガーすることです。

おかげで、 ステファンウィック - Windowsの開発プラットフォーム

+0

が、それは、このためにシングルプロセスモデルのバックグラウンドタスクを使用することは可能ですか? (Windows Runtime Componentなし) – Abdousamad

+0

いいえ、これは現在できません。 UpdateTaskには2プロセスモデルが必要です。つまり、Windowsランタイムコンポーネントでタスクを実装する必要があります。 –

+0

悲しいことに、これはうまくいきません。新しいパッケージが配備された直後に、システムはデバッガが接続される前にタスクを起動します。 VS2017、UWP 15063デスクトップアプリでテスト済み。 –

関連する問題