1

PackageManagerクラスは、完全なデスクトップ アプリからのみ使用できます。WinRT アプリから直接使用すると (現在のユーザーにインストールされているアプリのリストを取得する場合でも) UnauthorizedAccessException、.

Microsoft が Windows 8.1 Update 1 で導入した新しいBrokered Componentsを使用して、これを回避し、実際にクラスを使用できることを期待していました (現時点では、デスクトップ アプリケーションから直接使用することしかできません)。

驚いたことに、それはうまくいきませんでしUnauthorizedAccessExceptionた。仲介されたコンポメントは、App Container の外部の別のプロセスで実行されるはずなので、制限に直面することはないと思いました。コンソール アプリを実行してPackageManager、ブローカー コンポーネントからのニーズを別のプロセスとして処理しようとさえしましたが、これも同じ例外で失敗しました。

例外を再現する簡単なコードを提供する方法が思い浮かびません。ブローカ コンポーネントを作成して WinRT アプリから使用するには、Harry Pierson のブローカ コンポーネントに関するシリーズを参照しました。

なぜこれが起こっているのか誰かがコメントできますか?

4

1 に答える 1

0

ドキュメントによると、このクラスには管理者権限が必要です。そのため、WinRT とストア アプリはサンドボックス化が厳しすぎて、管理施設から開始しても自分自身を昇格させることができないようです。逆に、hello-world コンソール アプリは、admin で起動すれば、Pac​​kageManager で自由に操作できます。

于 2015-06-03T16:53:43.260 に答える