UnityでIL2CPPビルドが失敗する原因と解決策(Steamリリース用にWindowsビルドした時)

Unityでスマホ(Android/iOS)ではビルドが通るのに、Steamリリース用にアプリをビルドするとエラーが出る。
Windows(IL2CPP)だけ失敗するというケースは非常に多く報告されています。

この記事では、よくあるエラーメッセージとその原因・解決方法を分かりやすくまとめます。

■ よく出るエラーメッセージ例

▼ 例1:

IL2CPP error for method '...' in assembly 'Assembly-CSharp.dll'

▼ 例2:

Failed running il2cpp.exe

▼ 例3:

System.Exception: Build failed with errors.
   at Unity.IL2CPP.Building.CppProgramBuilder.Build()

▼ 例4:

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\...\cl.exe not found

▼ 例5:

Fatal error: cannot open input file 'il2cpp.pdb'

▼ 例6:

error: Could not set up a toolchain for Architecture x64. Make sure you have the right build tools installed for il2cpp builds. Details: IL2CPP C++ code builder is unable to build C++ code. In order to build C++ code for Windows Desktop, you must have one of these installed: * Visual Studio 2022 or newer with C++ compilers and Windows SDK (version 10.0.19041.0 or newer)

■ 原因と解決策

🔧 原因1:Visual Studioに必要なC++ビルドツールが入っていない

スマホ(Android/iOS)は Unity 側が、IL2CPPのC++ビルド環境を持ってますが、
Windowsビルドだけは “PCのVisual Studio環境” に依存しており、Visual StudioにIL2CPPビルドに必要なコンポーネントがないとビルド出来ません。

IL2CPPは、C#をC++に変換し、そのC++をコンパイルして実行ファイルを作ります。
つまり、C++の開発環境が入っていないと動かないのです。

✅ 解決策:

Visual Studio Installer を開いて、「変更」ボタンより以下の設定を確認します。

C++によるデスクトップ開発」にチェックを入れる。

もし、上記設定でビルドしてもダメなら、さらに右ペインから以下のコンポーネントを確認:

  • MSVC v143 – VS 2022 C++ x64/x86 ビルドツール
  • Windows 10 SDK (10.0.19041.0 以上)(最新版でもOK)
  • C++ CMake tools for Windows(自動で入らない場合もある)

    これらが揃っていれば、cl.exe(C++コンパイラ)が使用可能になり、IL2CPPが通るようになります。

    🔧 原因2:古いSDKやツールの競合

    Visual Studioに複数のバージョンのSDKやMSVCツールが入っていると、
    Unityが誤って古いものを使い、il2cpp.exeがエラーを出すことがあります。

    ✅ 解決策:

    1. 古いWindows SDKをアンインストール
    2. 最新のMSVCツールセット(例:v143)だけ残す
    3. Unityの「External Tools」設定でVisual Studioを再設定

    🔧 原因3:ビルドキャッシュやLibraryの破損

    Unityの一時ファイルが破損していると、正常なC++コードを生成できません。

    ✅ 解決策:

    1. Unityを閉じる
    2. プロジェクトフォルダ内の Library フォルダを削除
    3. Unityを再起動して再ビルド

    🔧 原因4:アンチウイルスやパス問題

    一部のセキュリティソフトが il2cpp.execl.exe の実行をブロックする場合があります。
    また、プロジェクトパスに日本語や全角スペースが含まれていると、IL2CPPが失敗します。

    ✅ 解決策:

    • プロジェクトパスを英数字のみにする(例:C:\UnityProjects\MyGame
    • Windows Defender などで Unity/Visual Studio のフォルダを除外設定する

    🔧 原因5:Scripting Backendや設定ミス

    ✅ 解決策:

    • Build Settings → Platform:Windows
    • Scripting Backend:IL2CPP
    • Architecture:x64
    • API Compatibility Level:.NET Standard 2.1

    これを確認し、特に MonoIL2CPP に切り替えた直後のビルドでは一度 Library を削除しておくのが安全です。

    ■ まとめ

    IL2CPPビルド失敗の多くは「Visual Studioの構成不足」か「破損キャッシュ」です。
    特にスマホ(Android/iOS)ではビルド成功していても、
    WindowsはC++で再コンパイルが必要なため、開発環境が未構築だと確実に失敗します。

    まずは次の3つを確認すれば、ほとんどのケースは解決します👇

    ✅ C++によるデスクトップ開発がインストールされているか。
    ✅ Windows 10 SDK (10.0.19041.0 以上)がインストールされているか。
    ✅ MSVC v143 ビルドツールがインストールされているか。