PackageManagerクラスは、完全なデスクトップ アプリからのみ使用できます。WinRT アプリから直接使用すると (現在のユーザーにインストールされているアプリのリストを取得する場合でも) UnauthorizedAccessException
、.
Microsoft が Windows 8.1 Update 1 で導入した新しいBrokered Componentsを使用して、これを回避し、実際にクラスを使用できることを期待していました (現時点では、デスクトップ アプリケーションから直接使用することしかできません)。
驚いたことに、それはうまくいきませんでしUnauthorizedAccessException
た。仲介されたコンポメントは、App Container の外部の別のプロセスで実行されるはずなので、制限に直面することはないと思いました。コンソール アプリを実行してPackageManager
、ブローカー コンポーネントからのニーズを別のプロセスとして処理しようとさえしましたが、これも同じ例外で失敗しました。
例外を再現する簡単なコードを提供する方法が思い浮かびません。ブローカ コンポーネントを作成して WinRT アプリから使用するには、Harry Pierson のブローカ コンポーネントに関するシリーズを参照しました。
なぜこれが起こっているのか誰かがコメントできますか?