DirectX Runtime Redistribution

前回(id:NyaRuRu:20050609:p1)「DirectX 9.0 SDK Update (June 2005) から D3DX の再配布が云々」と書きましたが,誤解を招きそうな表現だったので補足しておきます.
DirectX 9.0 SDK Update (June 2005) では,再配布ファイルの「必須ファイル」と「オプションファイル」が見直されました.SDK 内のリリースノートによれば以下のようになります.

DirectX 9.0 SDK Update (June 2005) 再配布ファイル一覧
file name file size redist. condition
DXSetup.exe 482,000 必須
DSetup32.dll 2,245,840 必須
DSetup.dll 75,472 必須
Dxupdate.cab 67,440 必須
Jun2005_D3DX_26_x86.CAB 1,065,813 オプション
Jun2005_D3DX_26_x64.CAB 1,336,890 オプション
Jun2005_MDX_x86.CAB 916,000 オプション
DirectX.CAB 15,493,481 オプション
DXNT.CAB 13,265,040 オプション
BDA.CAB 703,080 オプション
BDAXP.CAB 976,020 オプション
BDANT.CAB 1,156,363 オプション

このうち「オプション」となっているファイルは必ずしも再配布ファイルに含める必要はありません.参考までに,以下に各ファイルがターゲットとする OS をまとめておきます.ただし,この表は正式に発表されているものの引用ではなく私の知識の範囲内で作成したものなので,実際に再配布する前にきちんとチェックを行ってください.

DirectX 9.0 SDK Update (June 2005) オプション再配布ファイル一覧
file name file size arch. Windows 9x Windows 2000 Windows XP Windows XP x64 comment
Jun2005_D3DX_26_x86.CAB 1,065,813 32bit (○) D3DX サポート.
Jun2005_D3DX_26_x64.CAB 1,336,890 64bit D3DX サポート.
Jun2005_MDX_x86.CAB 916,000 32bit (○) Managed DirectX サポート.
  • .NET Framework 1.1 がインストールされていること.
  • Jun2005_D3DX_26_x86.CAB も同梱すること.
DirectX.CAB 15,493,481 32bit DirectX 9.0c サポート.
DXNT.CAB 13,265,040 32bit DirectX 9.0c サポート.
BDA.CAB 703,080 32bit BDA サポート.
BDAXP.CAB 976,020 32bit BDA サポート.
BDANT.CAB 1,156,363 32bit BDA サポート.

表で○の付いていない組み合わせは,そのファイルはその OS には必要ないことを意味します.例えば DirectX.CAB は Windows 9x のみが必要とするパッケージなので,最初から Windows 2000 以降のみのサポートとする場合は含める必要はありません.さらに,予め DirectX 9.0c Runtime が導入されている環境をターゲットとする場合は,DirectX.CAB 以下は丸ごと省略することができます.実際,容量食いの DirectX.CAB と DXNT.CAB を両方とも再配布ファイルから外せるようになったというのが,今回の再配布条件緩和の最大のポイントと言えるでしょう.Windows XP SP2 や Windows XP Professional x64 Edition では最初から DirectX 9.0c Runtime が入っていますしね.
ついで,主に Managed DirectX から DirectX に入られた方向けにもう一点.

  • d3dx9_xx.dll に依存する Native アプリケーション
  • d3dx9_xx.dll・Managed DirectX Runtime・.NET Framework 1.1 Runtime に依存する MDX アプリケーション

これらは Windows Update でカバーしきれないランタイムファイルを抱えている点では同じです.なにも Managed DirectX のみが困っているわけではありません.DirectX アプリケーションとして,環境チェックやユーザへの指示についてはよく考える必要があるでしょう(id:NyaRuRu:20050317:p2).
Native アプリケーションを主に作られている方にとっても,例えば Managed DirectX Runtime に依存していた NASA World Wind (id:NyaRuRu:20050111:p1) で,どれぐらい「インストールしたけどうまく動かない」という事例があったのかは Web 配布モデルの参考になるかもしれませんね.