詳細
- 必要な再配布可能パッケージのエクスポート ライブラリを参照する通常の方法でアプリを開発します。
- 依存する再配布可能パッケージをアプリにバンドルする代わりに、マニフェストを更新して該当するフレームワーク パッケージへの依存関係を宣言します。
- ユーザーが Microsoft Store からアプリをインストールすると、依存関係が検出され、フレームワーク パッケージがアプリで利用できるようになります。 フレームワーク パッケージがすでにユーザーのデバイスにインストールされている場合、追加の操作は不要です。それ以外の場合、Microsoft Store は、それを使用するアプリのインストールを進める前に、フレームワーク パッケージのインストールをトリガーします。
- アプリの x86 ビルドは、フレームワーク パッケージの x86 ビルドを使用します。アプリの x64 ビルドは、フレームワーク パッケージの x64 ビルドを使用します。アーキテクチャを指定するために何もする必要はありません。プラットフォームがそれを行います。
DirectX ランタイム
このフレームワーク パッケージは、レガシー DirectX SDK からのさまざまなサイドバイサイドのオプション コンポーネントを提供します。アプリケーションが非推奨の Direct3D ユーティリティ ライブラリである D3DX9、D3DX10、D3DX11、XAudio 2.7、XInput 1.3、または XACT を使用している場合、このパッケージを使用して、それらの非推奨 DLL をパッケージ化された Win32 デスクトップ アプリケーションにデプロイできます。これらのコンポーネントに関する詳細な背景については、この blog ポスト を参照してください。DirectX を使用するタイトルの大多数は、この「レガシー DirectX SDK」フレームワーク パッケージ依存関係を実際には必要としません。
- XAudio2 の場合、最良のオプションは、Windows 10 SDK のヘッダーを使用して XAudio 2.9 にアップグレードすることです。Windows 10 では、XAudio 2.9、X3DAudio、および XAPOFX はすべてオペレーティング システムに組み込まれています。ストア版以外の場合、XAudio2Redist を利用でき、これは Windows 7 SP1 以降で XAudio2.9 をサポートするシンプルなアプリケーション ローカルの再配布可能パッケージです。これによりデプロイが簡素化され、レガシー XAudio 2.7 の既知の多くのバグに対処できます。Microsoft Docs を参照してください。
- XInput の場合、最良のオプションは、Windows 10 SDK のヘッダーを使用して XInput 1.4 を使用することです。Windows 10 では、XInput 1.4 はオペレーティング システムに含まれています。ストア版以外の場合、Windows Vista までさかのぼってオペレーティング システムに含まれる XInput 9.1.0 を利用できます。この blog ポスト を参照してください。
レガシー XInput 1.3 の使用は、既知のセキュリティ問題があるため強く推奨されません。フレームワーク パッケージのバージョンは、この問題を軽減するために更新されており、SHA-256 コード署名にも更新されていますが、元のレガシー DirectX End-User Runtime パッケージは変更されていません。
-
Direct3D 10 (
d3dx10) の場合、最良のオプションは Direct3D 11 にアップグレードすることです。Microsoft Docs を参照してください。 -
Direct3D 11 (
d3dx11) の場合、Direct3D 11 用のレガシー D3DX のさまざまな代替については、この blog ポスト を参照してください。
古いタイトルの場合、Microsoft.DXSDK.D3DX NuGet パッケージの使用も検討できます。これは、サイドバイサイド ライセンスで D3DX9、D3DX10、および D3DX11 の 2010 年 6 月バージョンを提供します。これらの再配布可能 DLL も SHA-256 コード署名されています。
- HLSL コンパイラー (
D3DCompiler) の場合、Windows 10 SDK の最新バージョンを使用できます。Windows 10 では、これはオペレーティング システムに含まれています。ストア版以外の場合、D3DCompiler_47.dllをシンプルなアプリケーション ローカル ファイルとしてゲームに含めることができます。この blog ポスト を参照してください。
このフレームワーク パッケージもレガシー DirectX End-User Redistributable も、DirectX ランタイムを何ら変更しません。
MicrosoftGame.config の例:
- Microsoft ダウンロード サイトからダウンロードし、Appx ファイルをダブルクリックしてインストールします (推奨)。DirectX x86 フレームワーク パッケージ、DirectX x64 フレームワーク パッケージ
- DirectX フレームワーク依存パッケージをインストールする DirectX サンプル アプリを取得するために、実行アプリから次のリンクを入力します。(注: これは RETAIL 開発サンドボックスのマシンでのみ機能し、x64 プラットフォーム マシンを使用している場合にのみ x64 プラットフォーム版のみをインストールします): ms-windows-store://pdp/?productid=9MTF6XHMN17Z
DirectX フレームワーク パッケージは、これらの DLL を System32 フォルダーにインストールしません。それらは、実行時にパッケージ アプリケーションの検索パスにあります。明示的リンクを使用している場合、これらのレガシー DirectX ライブラリを読み込むために
LoadLibraryEx フラグの LOAD_LIBRARY_SEARCH_SYSTEM32 または LOAD_LIBRARY_SEARCH_APPLICATION_DIR を使用しないでください。このフレームワーク パッケージの 9.29.1974.0 バージョンには、SHA-256 コード署名されたペイロード DLL、および XInput 1.3 のセキュリティ修正が含まれています。
Visual Studio C++ ランタイム
C/C++ ランタイムの特定のケースでは、従来の再配布可能形式とフレームワーク パッケージ形式は常に同一ではありません。従来の Microsoft Store 以外のアプリは、常に従来の再配布可能形式を使用してきました。
前述のインストーラーは、必要なフレームワーク パッケージを次の Extension SDKs フォルダーに配置します。
%PROGRAMFILES(X86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs
アプリのアーキテクチャに対応するバージョン (x86 または x64) をサイドロードするようにしてください。
パッケージとそのフレームワーク依存関係をローカルでテストするには、アプリケーションがビルドされた Visual Studio のバージョンを特定し、対応する APPX フレームワーク パッケージをサイドロードして、アプリを登録します。
詳細については、Microsoft Docs を参照してください。
Visual Studio 2012
以下は、Visual Studio 2012 VCLibs フレームワーク パッケージ v11 のマニフェスト エントリの例です。-
x86:
- フレームワーク パッケージを見つけます。 C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.11.00.Desktop.appx
-
それをダブルクリックしてインストールするか、次の Windows PowerShell コマンドを実行します。
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.11.00.Desktop.appx"
-
x64:
- フレームワーク パッケージを見つけます。 C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.11.00.Desktop.appx
-
それをダブルクリックしてインストールするか、次の Windows PowerShell コマンドを実行します。
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.11.00.Desktop.appx"
Visual Studio 2013
以下は、Visual Studio 2012 VCLibs フレームワーク パッケージ v12 のマニフェスト エントリの例です。-
x86:
- フレームワーク パッケージを見つけます。 C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.120\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.12.00.Desktop.appx
-
それをダブルクリックしてインストールするか、次の Windows PowerShell コマンドを実行します。
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.11.00.Desktop.appx"
-
x64:
- フレームワーク パッケージを見つけます。 C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.120\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.12.00.Desktop.appx
-
それをダブルクリックしてインストールするか、次の Windows PowerShell コマンドを実行します。
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.120\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.12.00.Desktop.appx"
Visual Studio 2015 - 2022
以下は、Visual Studio 2015 以降の VCLibs フレームワーク パッケージ v14 のマニフェスト エントリの例です。-
x86:
- フレームワーク パッケージを見つけます。 C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.14.00.Desktop.appx
-
それをダブルクリックしてインストールするか、次の Windows PowerShell コマンドを実行します。
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.14.00.Desktop.appx"
-
x64:
- フレームワーク パッケージを見つけます。 C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx
-
それをダブルクリックしてインストールするか、次の Windows PowerShell コマンドを実行します。
add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx"
ローカル テスト
適切なマニフェストへの参照を含め、APPX フレームワーク パッケージをサイドロードした後、次のコマンドを使用してアプリのルース ビルド バージョンをインストールします。WdApp.exe register loose_build_path
これにより、アプリがインストールされ、適切なフレームワークを参照していることが保証されます。次に、スタート メニューのタイルからアプリを実行し、アプリに必要なテストと検証の手順を実行します。
サイドロード構成でのテストが完了したら、MSIXVC パッケージング ツールを使用した PC 向けタイトルのパッケージングのはじめに のトピックに記載されている手順を使用して MSIXVC パッケージを作成します。
詳細については、
Centennial プロジェクトでの Visual C++ ランタイムの使用 ブログの投稿を参照してください。