Windowsユニバーサルアプリケーションとして書かれたLOBアプリケーションの場合を起動せずにアプリケーションをインストールしたときにバックグラウンドタスクを登録します。私が見ることのできるところからは、ドキュメントではPre-Installed Configuration Package.appxmanifestの機能がわかり、thisが見つかりました。UWPアプリケーションの事前インストールされていない設定タスク
ただし、この拡張機能を使用する場合、バックグラウンドタスクは登録されず、何も実行されないことがわかります。ここで
Package.appxmanifestで私のプリインストール設定の拡張機能である:
<Extension Category="windows.preInstalledConfigTask" EntryPoint="Foo.BackgroundTasks.DefaultRegistrationBackgroundTask" />
タスクおよびエントリポイントが正しく設定されていることを検証するために、私は更新タスク機能を使用してそれを登録し、増加しましたアプリケーションのバージョン、それを再度展開し、バックグラウンドタスクが登録され、すべて期待どおりに動作します。ここで
はPackage.appxmanifestの私の更新タスクの拡張機能である:
<Extension Category="windows.updateTask" EntryPoint="Foo.BackgroundTasks.DefaultRegistrationBackgroundTask" />
プリインストール設定作業は何とか制限やその他の設定が必要ですか?このような問題をどのようにデバッグできますか?ブレイクポイントがヒットしません。 Foo.BackgroundTasks.DefaultRegistrationBackgroundTaskの
コード:
public sealed class DefaultRegistrationBackgroundTask : IBackgroundTask
{
private BackgroundTaskDeferral _backgroundTaskDeferral;
public void Run(IBackgroundTaskInstance taskInstance)
{
// Deferral is required if code uses any async call
_backgroundTaskDeferral = taskInstance.GetDeferral();
// Location Services
BackgroundTaskHelper.RegisterBackgroundTask("Foo.BackgroundTasks.LocationBackgroundTask",
"Foo.LocationBackgroundTask",
new SystemTrigger(SystemTriggerType.UserPresent, false),
null);
// Referal releases
_backgroundTaskDeferral.Complete();
}
}
ありがとうございます!したがって、ユーザーがアプリを起動しなくても、バックグラウンドタスクを登録する機会はありませんか? 最初のログイン時にアプリを自動起動する機会があるかもしれません。 – BenAffleckIsBatman
正しいですが、アプリを一度起動しなくてもアプリコードを実行する方法はありません。 UpdateTaskはここでの例外です。あなたはUserVoiceで機能の提案を記録することを歓迎します:https://wpdev.uservoice.com/forums/110705-universal-windows-platform –
このような機能は本当に新しいユースケースを可能にします。私はUserVoiceに記録します。ありがとう。管理されたクライアントであるため、OSを完全に制御していると仮定すると、他の方法がありますか?自動スタート&プリスタートなどOSが私たちによって導入されたとき、このアプリケーションをOEMアプリケーションとして登録し、上記のタスクを使用する方法またはそこにアクセスする方法はありますか? – BenAffleckIsBatman