次の方法で共有


フレームワーク パッケージの依存関係

アプリが再頒布可能ソフトウェアに依存していて、そのソフトウェアが Microsoft Store でフレームワーク パッケージとして提供されている場合は、再頒布可能ソフトウェアをチェーンインストールする代わりに、フレームワーク パッケージに対する依存関係を宣言することができます。 ただし、依存先の再頒布可能ソフトウェアに対応するフレームワーク パッケージが Microsoft Store で提供されていない場合は、この方法を使用しないでください。 代わりに、カスタム インストール操作を検討してください。

詳細

  • 必要な再頒布可能ソフトウェアのエクスポート ライブラリを参照して、通常の方法でアプリを開発します。

  • 依存先の再頒布可能ソフトウェアをアプリにバンドルするのではなく、マニフェストを更新して、関連するフレームワーク パッケージに対する依存関係を宣言します。

  • ユーザーが Microsoft Store からアプリをインストールすると、依存関係が自動的に検出され、当該のフレームワーク パッケージがアプリ向けに提供されているかどうかが確認されます。

    フレームワーク パッケージがユーザーのデバイスに既にインストールされている場合は、それ以上の操作は必要ありません。 それ以外の場合は、フレームワーク パッケージを使用するアプリ用にそのインストールが進行する前に、Microsoft Store でインストールがトリガーされます。

  • アプリの x86 ビルドでは、フレームワーク パッケージの x86 ビルドが使用されます。 アプリの x64 ビルドでは、フレームワーク パッケージの x64 ビルドが使用されます。 アーキテクチャを指定するために何かをする必要はありません。 プラットフォームで自動的に行われます。

DirectX ランタイム

このフレームワーク パッケージには、従来の DirectX SDK によるさまざまな並列オプション コンポーネントが用意されています。 アプリケーションで非推奨の Direct3D ユーティリティ ライブラリ D3DX9、D3DX10、または D3DX11、XAudio 2.7、XInput 1.3、または XACT を使用する場合は、パッケージ化された Win32 デスクトップ アプリケーション用に非推奨の DLL を展開するためにこのパッケージを使用できます。 これらのコンポーネントの背景については、こちらのブログ投稿を参照してください。

注意

DirectX を使用するタイトルの大部分は、実際にはこの 'レガシー Direct XSDK' フレームワーク パッケージの依存関係を必要としません。

D3DCompiler_33.dl - D3DCompiler_43.dll
d3dcsx_42.dll, d3dcsx_43.dll
d3dx10.dll, d3dx10_33.dll - d3dx10_43.dll
d3dx11_42.dll, d3dx11_43.dll
d3dx9_24.dll - D3DX9_43.dll
x3daudio1_0.dll - X3DAudio1_7.dll
xactengine2_0.dll - xactengine2_9.dll
xactengine3_0.dll - xactengine3_7.dll
XAPOFX1_0.dll - XAPOFX1_5.dll
XAudio2_0.dll - XAudio2_7.dll
xinput1_1.dll - xinput1_3.dll

または、従来の DirectX SDK の依存関係を削除するようにアプリケーションを更新することもできます。

  • XAudio2 の場合、Windows 10 SDK のヘッダーを使用して XAudio 2.9 にアップグレードするのが最適なオプションです。 Windows 10 の場合、XAudio 2.9、X3DAudio、XAPOFX はすべてオペレーティング システムに内蔵されています。 ストア以外のバージョンでは、Windows 7 SP1 以降で XAudio2.9 をサポートする単純なアプリケーションローカル再配布可能ファイルを備えた XAudio2Redist を利用できます。 これら両方により展開が簡単になり、従来の XAudio 2.7 の数多くの既知のバグに対処することができます。 「Microsoft Docs」を参照してください。

  • XInput の場合、Windows 10 SDK のヘッダーを使用して XInput 1.4 を使用するのが最適なオプションです。 Windows 10 の場合、オペレーティング システムに XInput 1.4 が含まれています。 ストア以外のバージョンの場合、オペレーティング システムに含まれている XInput 9.1.0 を Windows Vista まで使用できます。 こちらのブログ投稿を参照してください。

既知のセキュリティ問題があるため、レガシー XInput 1.3 の使用は強くお勧めしません。 フレームワーク パッケージのバージョンは、この問題を軽減するために更新され、SHA-256 コード署名に更新されましたが、元のレガシー DirectX エンドユーザー ランタイム パッケージは変更されていません。

  • Direct3D 10 (d3dx10) の場合、Direct3D 11 へのアップグレードが最適なオプションです。 「Microsoft Docs」を参照してください。

  • Direct3D 11 (d3dx11) の場合、Direct3D 11 用の従来の D3DX のさまざまな置き換えに関するこちらのブログ投稿を参照してください。

以前のタイトルの場合は、2010 年 6 月バージョンの D3DX9、D3DX10、および D3DX11 にサイドバイサイド ライセンスを提供する Microsoft.DXSDK.D3DX NuGet パッケージの使用を検討することもできます。 これらの再配布可能な DLL も SHA-256 コード署名されています。

  • HLSL コンパイラー (D3DCompiler) の場合、Windows 10 SDK で最新版を使用できます。 Windows 10 の場合、オペレーティング システムにこれが含まれています。 Store 以外のバージョンの場合は、ゲームに D3DCompiler_47.dll を単純なアプリケーション ローカルファイルとして含めることができます。 こちらのブログ投稿を参照してください。

注意

このフレームワーク パッケージも従来の DirectX End-User 再頒布可能パッケージも、DirectX ランタイムを変更することはありません。

MicrosoftGame.config スニペット:

<Game>

  <DesktopRegistration>
    <DependencyList>
      <KnownDependency Name="DX11"/>
    </DependencyList>
  </DesktopRegistration>

</Game>

DirectX フレームワーク パッケージを開発用コンピューターまたはテスト用コンピューターに取得するには、2 つの方法があります。

  1. Microsoft ダウンロード サイトからダウンロードし、Appx ファイルをダブルクリックしてインストールします (推奨)。 DirectX x86 フレームワーク パッケージDirectX x64 フレームワーク パッケージ
  2. 実行アプリから次のリンクを入力し、DirectX のフレームワーク依存関係パッケージをインストールする DirectX サンプル アプリを入手します (注意: これはリテール版開発サンドボックス内のコンピューターに対してのみ機能し、x64 プラットフォーム コンピューターを使用している場合は、x64 プラットフォーム フレーバーのみがインストールされます)。ms-windows-store://pdp/?productid=9MTF6XHMN17Z

注意

DirectX Framework パッケージは、これらの DLL を System32 フォルダーにインストールしません。 これらは、実行時にパッケージ化されたアプリケーションの検索パスにあります。 明示的なリンクを使用する場合は、フラグLOAD_LIBRARY_SEARCH_SYSTEM32LOAD_LIBRARY_SEARCH_APPLICATION_DIRLoadLibraryEx使用したり、これらの従来の DirectX ライブラリを読み込んだりしないでください。

このフレームワーク パッケージの 9.29.1974.0 バージョンには、SHA-256 コード署名ペイロード DLL と、XInput 1.3 のセキュリティ修正が含まれています。

Visual Studio C++ ランタイム

C/C++ ランタイムの特定の場合においては、従来の再頒布可能ソフトウェアの形式とフレームワーク パッケージの形式は必ずしも同じではありません。 従来の Microsoft Store 以外のアプリでは、常に従来の再頒布可能ソフトウェアの形式が使用されていました。

Visual C/C++ バージョン 推奨事項 APPX フレームワーク パッケージのダウンロード リンク
2015、2017、2019、2022 従来の再頒布可能ソフトウェアとフレームワーク パッケージの形式は同じであるため、どちらでも選択できます。 ただし、ベスト プラクティスとして、フレームワーク パッケージを使用することをお勧めします。 デスクトップ ブリッジ用の VC 14.0 フレームワーク パッケージ
2013 MSIXVC でパッケージ化されたアプリでは、フレームワーク バージョンを使用する必要があります。 そうしないと、一部の API が予期しない動作をする可能性があります。 デスクトップ ブリッジ用の VC 12.0 フレームワーク パッケージ
2012 MSIXVC でパッケージ化されたアプリでは、フレームワーク バージョンを使用する必要があります。 そうしないと、一部の API が予期しない動作をする可能性があります。 デスクトップ ブリッジ用の VC 11.0 フレームワーク パッケージ
2010 以前 MSIXVC でパッケージ化されたアプリでは、従来の再頒布可能ソフトウェアのルース ファイルを、アプリのフォルダー内の適切なサブフォルダーに組み込む必要があります。 これらのバージョンについては、従来の再頒布可能ソフトウェアとフレームワーク パッケージのどちらも使用しないでください。 該当なし

前述のインストーラーでは、必要なフレームワーク パッケージが次の 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 のマニフェスト エントリの例です。

  <DesktopRegistration>
    <DependencyList>
      <KnownDependency Name="VC11"/>
    </DependencyList>
  </DesktopRegistration>

このフレームワーク パッケージをサイドロードするには

  • x86:

    1. フレームワーク パッケージがある次の場所に移動します。

      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

    2. これをダブルクリックしてインストールするか、次の 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:

    1. フレームワーク パッケージがある次の場所に移動します。

      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

    2. これをダブルクリックしてインストールするか、次の 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 のマニフェスト エントリの例です。

  <DesktopRegistration>
    <DependencyList>
      <KnownDependency Name="VC12"/>
    </DependencyList>
  </DesktopRegistration>

このフレームワーク パッケージをサイドロードするには

  • x86:

    1. フレームワーク パッケージがある次の場所に移動します。

      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

    2. これをダブルクリックしてインストールするか、次の 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:

    1. フレームワーク パッケージがある次の場所に移動します。

      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

    2. これをダブルクリックしてインストールするか、次の 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 のマニフェスト エントリの例です。

  <DesktopRegistration>
    <DependencyList>
      <KnownDependency Name="VC14"/>
    </DependencyList>
  </DesktopRegistration>

このフレームワーク パッケージをサイドロードするには

  • x86:

    1. フレームワーク パッケージがある次の場所に移動します。

      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

    2. これをダブルクリックしてインストールするか、次の 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:

    1. フレームワーク パッケージがある次の場所に移動します。

      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

    2. これをダブルクリックしてインストールするか、次の 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"

VS 2015 Update 3、VS 2017、VS 2019、VS 2022 はすべて同じ REDIST を使用し、VS 2022 が最新版であることに注意してください。 詳細については、Microsoft Docs を参照してください。

ローカル テスト

適切なマニフェストへの参照を追加し、APPX フレームワーク パッケージをサイドロードしたら、次のコマンドを使用して、アプリのルース ビルド バージョンをインストールします。
WdApp.exe register loose_build_path

これにより、アプリがインストールされ、適切なフレームワークが参照されます。 [スタート] メニューのタイルからアプリを実行し、アプリのテストと検証のための必要な手順を実行します。

サイドロード構成でテストを完了したら、「MSIXVC パッケージ化ツールを使用して PC 用タイトルのパッケージ化を開始する」のトピックの説明に従って、MSIXVC パッケージを作成します。

詳細については、「Centennial プロジェクトで Visual C++ ランタイムを使用する」のブログ投稿を参照してください。