パッケージ サポート フレームワークの概要

パッケージ サポート フレームワーク (PSF) は、ソース コードにアクセスできない場合に既存のデスクトップ アプリケーションに修正を適用して MSIX コンテナー内で実行できるようにするのに役立つオープン ソース キットです。 パッケージ サポート フレームワークは、アプリケーションで最新のランタイム環境のベスト プラクティスに従うのに役立ちます。

パッケージ サポート フレームワークが役立つ一般的な例をいくつか紹介します。

  • アプリが起動時に DLL を見つけることができません。 場合によっては、現在の作業ディレクトリを設定する必要があります。 MSIX に変換する前に、元のショートカットで必要な現在の作業ディレクトリを調べることができます。
  • アプリはインストール フォルダーに書き込みます。 通常、プロセス モニターに "アクセスが拒否されました" というエラーが表示されます。
  • アプリは起動時にパラメーターを実行可能ファイルに渡す必要があります。 PSF がどのように役立つかについて詳しくは、こちらを参照してください。使用可能な構成の詳細については、こちらを参照してください。

このフレームワークは、オープン ソースで軽量であり、アプリケーションの問題に迅速に対処するために使用できます。 さらに、これにより、世界中のコミュニティに相談する機会と共に、他者の投資に基づいて事を進める機会が得られます。

ステップ バイ ステップのガイドについては、開始ガイドを参照してください。

パッケージ サポート フレームワークの使用を開始する

必要なツールは次のとおりです。

  1. パッケージ サポート フレームワーク
  2. 問題を識別するためのプロセス モニターを入手します

利用可能なすべての修正について GitHub で確認できます。 修正プログラムが見つかった場合は、それをパッケージに適用できます。 このステップバイステップ ガイドにその方法が説明されています。 また、Visual Studio デバッガーを使用してアプリケーションをステップ実行し、修正プログラムが機能していること、および互換性の問題が解決されたことを確認する方法も示されています。

問題を解決するランタイム修正プログラムが見つからない場合は、自分で作成することができます。 そのためには、MSIX コンテナー内でアプリケーションを実行したときにどの関数呼び出しが失敗するかを特定します。 次に、ランタイム マネージャーで代わりに呼び出す差し替え用の関数を作成できます。 これにより、関数の実装を最新のランタイム環境の規則に準拠した動作に置き換えることができます。

パッケージ サポート フレームワークの作成にあたっては、Detours テクノロジが利用されています。これは、API のリダイレクトとフックを支援する、Microsoft Research (MSR) によって開発されたオープン ソース フレームワークです。

また、パッケージ サポート フレームワークを使用してスクリプトを実行し、ユーザー環境に合わせてアプリケーションを動的にカスタマイズすることもできます。 詳細については、 こちらの記事を参照してください。

制限事項

パッケージ サポート フレームワークでは、レジストリの上書きはサポートされていません。 これは、実行時の問題を解決するように設計されています。

データとテレメトリ

パッケージ サポート フレームワークには、製品やサービスの向上に役立てるために、使用状況データを収集して Microsoft に送信するテレメトリが含まれています。 詳しくは、Microsoft のプライバシーに関する声明をご覧ください。 ただし、データが収集されるのは、次の条件が両方とも満たされている場合だけです。

  • Windows 10 コンピューターで NuGet パッケージのパッケージ サポート フレームワークのバイナリが使用されている。
  • ユーザーがコンピューター上のデータ収集を有効にしている。

NuGet パッケージには署名済みバイナリが含まれており、該当するコンピューターの使用状況データを収集します。 リポジトリを複製したり、バイナリを直接ダウンロードしたりして、バイナリをローカルに構築している場合には、テレメトリは収集されません。