egametang/ET · error · Exception
the modified Unity.IL2CPP.dll of {curVersionStr} isn't found
Error message
the modified Unity.IL2CPP.dll of {curVersionStr} isn't found. please install hybridclr in 2019.4.40 first, then switch to your unity version What it means
Thrown during RunInitLocalIl2CppData on Unity 2019.x when the pre-modified Unity.IL2CPP.dll for the exact version string cannot be found on disk. Unity 2019 requires a patched IL2CPP executable that HybridCLR only ships for specific versions; the installer expects it to have been created by installing on 2019.4.40 first.
Source
Thrown at Packages/cn.etetet.hybridclr/Scripts/Editor/Share/Installer/InstallerController.cs:294
// replace libil2cpp
string dstLibil2cppDir = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp";
BashUtil.CopyDir($"{libil2cppWithHybridclrSourceDir}", dstLibil2cppDir, true);
// clean Il2cppBuildCache
BashUtil.RemoveDir($"{SettingsUtil.ProjectDir}/Library/Il2cppBuildCache", true);
if (version.major == 2019)
{
string curVersionStr = version.ToString();
string srcIl2CppDll = GetUnityIl2CppDllModifiedPath(curVersionStr);
if (File.Exists(srcIl2CppDll))
{
string dstIl2CppDll = GetUnityIl2CppDllInstallLocation();
File.Copy(srcIl2CppDll, dstIl2CppDll, true);
Debug.Log($"copy {srcIl2CppDll} => {dstIl2CppDll}");
}
else
{
throw new Exception($"the modified Unity.IL2CPP.dll of {curVersionStr} isn't found. please install hybridclr in 2019.4.40 first, then switch to your unity version");
}
}
if (HasInstalledHybridCLR())
{
WriteLocalVersion();
Debug.Log("Install Sucessfully");
}
else
{
Debug.LogError("Installation failed!");
}
}
}
}
View on GitHub (pinned to 5cab01f7a8)
Solutions
- Install Unity 2019.4.40 alongside your target version, run HybridCLR/Installer there to generate the modified Unity.IL2CPP.dll, then switch back to your actual 2019.x version and re-install.
- Confirm the version string returned by version.ToString() matches the filename HybridCLR expects (check GetUnityIl2CppDllModifiedPath output).
- If a compatible patched DLL is available from your team or CI cache, copy it to the expected source path before re-running the installer.
- Consider upgrading the project to Unity 2020+ where this special-case patching is no longer required.
Defensive patterns
Strategy: validation
Validate before calling
// For Unity 2019.x, check the patched DLL exists before installing
if (Application.unityVersion.StartsWith("2019"))
{
var version = new Installer.UnityVersion(Application.unityVersion);
string dllPath = GetUnityIl2CppDllModifiedPath(version.ToString());
if (!File.Exists(dllPath))
Debug.LogError("Patched IL2CPP.dll missing at " + dllPath + ". Install on 2019.4.40 first.");
} Prevention
- Document the 2019.4.40 prerequisite for all team members using 2019.x.
- Upgrade to Unity 2020+ to avoid this version-specific patching entirely.
- Cache the generated patched DLL in version control or artifact storage for reproducible installs.
When it happens
Trigger: version.major == 2019 and GetUnityIl2CppDllModifiedPath(curVersionStr) returns a path whose file does not exist (File.Exists is false). The modified DLL is a version-specific artifact that must be generated or downloaded separately.
Common situations: Using a Unity 2019 version other than 2019.4.40 without first running the installer under 2019.4.40 to produce the patched DLL; upgrading from one 2019.x patch to another without re-patching; the patched DLL was deleted or never copied into the expected location.
Related errors
- You have not initialized HybridCLR, please install it via me
- You must run `HybridCLR/Installer` after upgrading package
- You have not initialized HybridCLR, please install it via me
- clone hybridclr fail. url: {hybridclrRepoURL}
- clone il2cpp_plus fail. url: {il2cppPlusRepoDir}
AI-assisted analysis of egametang/ET@5cab01f7a8 (2026-08-13).
Data as JSON: /api/errors/613e424b437462ac.
Report an issue: GitHub.