ゲームの「サイドバイサイド構成が正しくない」エラーの直し方|sxstraceとイベントログで足りない部品を特定する【2026年版】
本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。
ログの部品名とアーキテクチャで対処を選ぶ
ゲームを起動した直後に「このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした」と表示され、ゲームが立ち上がらないことがあります。アプリが必要とする部品をWindowsが用意できない状態を示す表示で、メッセージには足りない部品の名前が出ません。
部品名はイベントビューアーのSideBySideの記録にあります。「Dependent Assembly」に続く名前・processorArchitecture・versionを控え、Microsoft.VC80 や Microsoft.VC90 のCRTなら、その世代とアーキテクチャのVisual C++再頒布可能パッケージを入れます。
最新のVisual C++(2015〜2022)を入れても、2008向けの参照は満たせません。Microsoftのサポート資料には、最新版では直らず2008のパッケージで直った例があります。名前がゲーム固有のものならゲームファイルの検証へ進み、記録に部品名が出ないときはsxstraceで詳しく取ります。DLL単体の配布サイトやWinSxSフォルダーの手動編集は使いません。
目次
表示この表示が出る仕組みと、似たエラーとの違い
Windowsは、アプリのmanifest(依存する部品の名前・バージョン・アーキテクチャを書いたXML)を読み、共有部品の置き場所であるWinSxSフォルダーやアプリ自身のフォルダーから該当する部品を探します。見つからなければ起動を止め、この表示を出します。MicrosoftのAssembly Searching Sequence
Windowsのバージョンによって文言が違い、「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。」と出る場合もあります。英語版では「The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail.」で、Windows Vista以降はイベントログのApplicationに詳細が書かれます。MicrosoftのSideBySide診断の解説
0xc000007b が出るなら、32bit/64bitの形式不一致を扱う0xc000007bの起動エラーが入口です。ログ確認イベントビューアーでSideBySideの記録を読む
- スタートボタンを右クリックして「イベントビューアー」を開き、「Windowsログ」→「Application」を選びます。
- エラーになった時刻の近くで、ソースが SideBySide のエラーを探します。右側の「現在のログをフィルター」でソースにSideBySideを指定すると絞れます。
- 同じ起動で複数の記録が並ぶ場合は、いちばん古い記録を開きます。Microsoftの解説では、古い記録に原因が直接書かれ、新しい記録は同じ内容か一般化した内容の繰り返しになりやすいとされています。
- 説明欄の「Dependent Assembly」以降を、スクリーンショットかメモで残します。
Microsoftのサポート資料に載る記録は次の形です(パスだけ架空のものに置き換え、読みやすいよう改行しています)。MicrosoftのEvent ID 33の例
ソース: SideBySide / イベントID: 33 / レベル: エラー
Activation context generation failed for "C:\Games\Example\game.exe".
Dependent Assembly Microsoft.VC90.CRT,
processorArchitecture="amd64",
publicKeyToken="1fc8b3b9a1e18e3b",
type="win32",
version="9.0.21022.8"
could not be found. Please use sxstrace.exe for detailed diagnosis.
VC80 はVisual C++ 2005、VC90 は2008の世代を指します。x86 は32bit版、amd64 は64bit版の部品です。64bit WindowsでもゲームのEXEが32bitなら x86 と記録されます。導入するパッケージはWindowsではなく、この値に合わせます。説明欄に部品名がなく「Activation context generation failed」だけの場合は、次のsxstraceで取ったログを読みます。イベントログのスクリーンショットには、ユーザー名が入ったパスが含まれることがあるため、共有するときは隠してください。
sxstracesxstraceで読み込みの経過を記録する
sxstraceはWindowsに入っているコマンドで、サイドバイサイドの解決の経過を記録して文字に直します。記録の開始には管理者権限が必要です。Microsoftのsxstraceの資料
- スタートメニューで「コマンドプロンプト」を右クリックし、「管理者として実行」を選びます。
- トレースを開始します。
sxstrace trace -logfile:sxstrace.etl - コマンドプロンプトを開いたまま、エラーが出るゲームを起動します(ランチャー経由のゲームはランチャーから起動します)。エラー画面が出たら閉じます。
- コマンドプロンプトに戻り、Enterキーを押してトレースを止めます。止まらなかった場合は
sxstrace stoptraceで止められます。 - 記録を読める形に変換します。
sxstrace parse -logfile:sxstrace.etl -outfile:sxstrace.txt - できた
sxstrace.txtをメモ帳で開き、「ERROR:」で始まる最初の行を探します。
トレースの開始と記録の変換は、同じフォルダーで続けて実行します。-filter:アプリ名 を付けると出力をアプリ単位に絞れますが、まずは付けずに取る方が見落としません。
部品が見つからない場合のsxstraceの出力には、次のような行が並びます。Microsoftのサポート資料に載る例では、参照を解決できなかった部品が「Cannot resolve reference」の行に、そのあとに「Activation Context generation failed」が出ています。MicrosoftのSxSTraceの出力例
ERROR: Cannot resolve reference Microsoft.VC90.CRT,
processorArchitecture="amd64",
publicKeyToken="1fc8b3b9a1e18e3b",
type="win32",
version="9.0.21022.8".
ERROR: Activation Context generation failed.
「Activation Context generation failed」だけが出て部品名がないときは、部品の不足ではなく、manifestの記述に問題がある可能性があります。イベントビューアーの記録を優先して読み、ゲームの整合性確認を実行します。
分岐記録の部品名で対処を選ぶ
「Cannot resolve reference」または「Dependent Assembly」に出た名前で、最初に試す対処が変わります。
Microsoft.VC80.* / Microsoft.VC90.*Visual C++ 2005(VC80)・2008(VC90)のランタイム部品です。記録のアーキテクチャに合うパッケージを導入します。次の節で手順を示します。Microsoft.VC80.DebugCRT のように Debug が付くデバッグ版のランタイムで、一般向けの再頒布パッケージはありません。製品版ではなく開発用ビルドや改造版のファイルを起動している可能性があるため、ゲームの整合性確認と、ゲームのサポートへの連絡が先です。Microsoftの解説部品名.manifest を探すため、ファイルが欠けていると同じ表示になります。ゲームファイルの検証が最初の対処です。MicrosoftのIsolated Applicationsのトラブルシューティング.manifest を編集した覚えがあれば元に戻し、ゲームの整合性確認を実行します。Visual C++VC80・VC90ならアーキテクチャに合う公式パッケージを入れる
- 「設定」→「アプリ」→「インストールされているアプリ」で、Microsoft Visual C++ 2008 Redistributable(VC90の場合)が一覧にあるかを見ます。x86とx64は別の項目として並びます。
- 記録と同じアーキテクチャの項目が既にあれば、「変更」から修復できるときは先に修復します。
- 無ければ、Microsoftの公式ページから、記録の
processorArchitectureに合うパッケージを入手します。x86ならx86版、amd64ならx64版です。Microsoftの再頒布可能パッケージ一覧 - インストール後にPCを再起動し、ゲームを起動します。
Microsoftの一覧にある2008のパッケージはSP1版で、x86とx64が別々に用意されています。サポートが終了した旧世代として掲載されており、同じ一覧にはVC80に当たる2005 SP1の入手先もあります。再頒布可能パッケージのアーキテクチャは、アプリの対象に合わせる必要があります。
2017以降は同じ再頒布ファイルを共有し、2013以前は別々に並んで入ります。サポート資料のVC90.CRTの事例も、「最新のVisual C++ランタイムを入れても直らない」とし、2008のパッケージ(x64)で解決しています。MicrosoftのSideBySide事例
version が 9.0.21022.8 のように古い番号でも、Microsoftの解決例は2008の公式パッケージの導入でした。一覧のパッケージを入れても同じ記録が出る場合や、ゲームが指定する世代が違う場合は、ゲームのサポートへ記録を伝えて確認してください。Microsoftの一覧にも、アプリの修復のために更新するときは開発元へ連絡するよう書かれています。
ゲーム側ゲームファイルの検証とサポートへの伝え方
SteamではPCとSteamを再起動し、ライブラリの対象ゲームのプロパティから「インストール済みファイル」→「ゲームファイルの整合性を確認」を選びます。Steamの公式手順 Epic Games Launcherでは、ライブラリのゲームの「…」→「管理」→「確認」です。Epic Gamesの整合性確認手順
検証後も同じ記録が出る場合は、ゲームのサポートへ次の4点を伝えます。ゲーム名とバージョン、イベントログの「Dependent Assembly」以降の全文、sxstrace.txtの最初のERROR行、実行したVisual C++の修復内容です。
避けることWinSxSの手動編集とDLL単体の配布は使わない
- WinSxSフォルダーのファイルを削除・移動・コピーしないでください。共有の部品は、公式パッケージのインストーラーがmanifestとともに登録する仕組みです。MicrosoftのAssembly Manifests
- manifestを手書きで作る、または記録の部品名のDLLだけを配布サイトから取ってゲームフォルダーに置く方法は避けます。DLLの検索先に置かれた別のファイルを読み込む危険があります。MicrosoftのDLLセキュリティ資料
直らない場合同じ表示が続くときの確認先
- 修復の前後で、イベントログの「Dependent Assembly」の名前・version・アーキテクチャが変わったかを比べます。別の部品名に変わったなら、新しい記録を起点に上の分岐の一覧から選び直します。
- 複数のゲームやアプリで同じ部品名が出るなら、PC側のVisual C++が原因です。一つのゲームだけなら、そのゲームのファイルを疑います。
- 起動はするがDLL関連のクラッシュが起きる場合は、症状が別です。ゲームがd3d12.dllでクラッシュする原因のように、例外コードから切り分ける記事を参照してください。
FAQよくある質問
0xc000007b なら形式不一致の記事の手順が合います。まとめログの部品名とアーキテクチャから対処を選ぶ
イベントビューアーのSideBySide記録で、いちばん古いエラーの「Dependent Assembly」を控えます。名前がVC80・VC90ならアーキテクチャに合うVisual C++の公式パッケージ、ゲーム固有の名前ならゲームファイルの検証です。記録が足りないときだけsxstraceを使い、DLL単体の配布やWinSxSの編集は避けます。

