パッケージ サポート フレームワークPackage Support Framework

パッケージ サポート フレームワークは、ソース コードにアクセスできない場合に既存の win32 アプリケーションに修正プログラムを適用して、デスクトップ アプリケーションが MSIX コンテナー内で実行できるようにするのに役立つオープン ソース キットです。The Package Support Framework is an open source kit that helps you apply fixes to your existing win32 application when you don't have access to the source code, so that it can run in an MSIX container. パッケージ サポート フレームワークは、アプリケーションで最新のランタイム環境のベスト プラクティスに従うのに役立ちます。The Package Support Framework helps your application follow the best practices of the modern runtime environment.

パッケージ サポート フレームワークの作成にあたっては、Detours テクノロジが利用されています。これは、API リダイレクトとフックを支援する、Microsoft Research (MSR) によって開発されたオープン ソースのフレームワークです。To create the Package Support Framework, we leveraged the Detours technology which is an open source framework developed by Microsoft Research (MSR) and helps with API redirection and hooking.

このフレームワークは、オープン ソースで軽量であり、アプリケーションの問題に迅速に対処するために使用できます。This framework is open source, lightweight, and you can use it to address application issues quickly. さらに、これにより、世界中のコミュニティに相談する機会と共に、他者の投資に基づいて事を進める機会が得られます。It also gives you the opportunity to consult with the community around the globe, and to build on top of the investments of others.

ステップバイステップ ガイドについては、「Apply runtime fixes to an MSIX package by using the Package Support Framework (パッケージ サポート フレームワークを使用した MSIX パッケージへのランタイム修正プログラムの適用)」を参照してください。For a step-by-step guide, see Apply runtime fixes to an MSIX package by using the Package Support Framework.

パッケージ サポート フレームワークの概要A quick look inside of the Package Support Framework

パッケージ サポート フレームワークには、実行可能ファイル、ランタイム マネージャー DLL、およびランタイム修正プログラムのセットが含まれます。The Package Support Framework contains an executable, a runtime manager DLL, and a set of runtime fixes.

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

しくみは次のとおりです。Here's how it works. アプリケーションに適用する修正プログラムを指定する構成ファイルを作成します。You'll create a configuration file that specifies the fixes that you want to apply to your application. 次に、パッケージ サポート フレームワーク (PSF) ランチャーの実行可能ファイルを指すようにパッケージを変更します。Then, you'll modify your package to point to the Package Support Framework (PSF) launcher executable file.

ユーザーがアプリケーションを起動すると、パッケージ サポート フレームワーク ランチャーが最初に実行されます。When users start your application, the Package Support Framework launcher is the first executable that runs. ランチャーによって構成ファイルが読み取られ、ランタイム修正プログラムとランタイム マネージャー DLL がアプリケーション プロセスに挿入されます。It reads your configuration file and injects the runtime fixes and the runtime manager DLL into the application process. ランタイム マネージャーは、MSIX、コンテナー内で実行するアプリケーションで必要になったときに修正プログラムを適用します。The runtime manager applies the fix when it's needed by the application to run inside of an MSIX container.

パッケージ サポート フレームワークによる DLL の挿入

パッケージ サポート フレームワークの使い方How to use the Package Support Framework

アプリケーション用のパッケージを作成したら、それをインストールして実行し、その動作を確認します。After you create a package for your application, install and run it, and observe its behavior. 互換性に関する問題の特定に役立つエラー メッセージが表示されることがあります。You might receive error messages that can help you identify a compatibility issue. プロセス モニターを使用して問題を識別することもできます。You can also use Process Monitor to identify issues.

問題が見つかったら、GitHub のページで修正プログラムを確認できます。After you find an issue, you can check our GitHub page for a fix. 修正プログラムが見つかった場合は、それをパッケージに適用できます。If you find one, you can apply it to your package. このステップバイステップ ガイドにその方法が説明されています。Our Step-by-step guide shows you how to do this. また、Visual Studio デバッガーを使用してアプリケーションをステップ実行し、修正プログラムが機能していること、および互換性の問題が解決されたことを確認する方法も示されています。It will also show you how to use the Visual Studio debugger to step through your application and verify that the fix is working and that it has resolved the compatibility issue.

問題を解決するランタイム修正プログラムが見つからない場合は、自分で作成することができます。If you can't find a runtime fix that addresses your issue, you can create one. そのためには、MSIX コンテナー内でアプリケーションを実行したときにどの関数呼び出しが失敗するかを特定します。To do that, you'll identify which function calls fail when your application runs in an MSIX container. 次に、ランタイム マネージャーで代わりに呼び出す差し替え用の関数を作成できます。Then, you can create replacement functions that you'd like the runtime manager to call instead. これにより、関数の実装を最新のランタイム環境の規則に準拠した動作に置き換えることができます。This gives you an opportunity to replace the implementation of a function with behavior that conforms to the rules of the modern runtime environment.

パッケージ サポート フレームワークの使用を開始するGet started with the Package Support Framework

互換性の問題を解決するためにパッケージ サポート フレームワークを使用する準備が整ったら、ステップバイステップ ガイド「Apply runtime fixes to an MSIX package by using the Package Support Framework (パッケージ サポート フレームワークを使用した MSIX パッケージへのランタイム修正プログラムの適用)」を参照してください。If you're ready to begin using the Package Support Framework to resolve compatibility issues, see our step-by-step guide at Apply runtime fixes to an MSIX package by using the Package Support Framework.