egametang/ET · error · Exception
resolve Hot update dll:{assemblyName} failed! Please make su
Error message
resolve Hot update dll:{assemblyName} failed! Please make sure that this hot update dll exists or the search path is configured in the external hot update path. What it means
Thrown by AssemblyResolverBase.ResolveAssembly when TryResolveAssembly fails for a hot update assembly name and throwExIfNotFind is true. The resolver distinguishes hot update DLLs from AOT DLLs by checking SettingsUtil.HotUpdateAssemblyNamesIncludePreserved; the hot update variant tells the developer to verify the DLL exists or configure the external hot update search path.
Source
Thrown at Packages/cn.etetet.hybridclr/Scripts/Editor/Share/Meta/AssemblyResolverBase.cs:21
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HybridCLR.Editor.Meta
{
public abstract class AssemblyResolverBase : IAssemblyResolver
{
public string ResolveAssembly(string assemblyName, bool throwExIfNotFind)
{
if (TryResolveAssembly(assemblyName, out string assemblyPath))
{
return assemblyPath;
}
if (throwExIfNotFind)
{
if (SettingsUtil.HotUpdateAssemblyNamesIncludePreserved.Contains(assemblyName))
{
throw new Exception($"resolve Hot update dll:{assemblyName} failed! Please make sure that this hot update dll exists or the search path is configured in the external hot update path.");
}
else
{
throw new Exception($"resolve AOT dll:{assemblyName} failed! Please make sure that the AOT project has referenced the dll and generated the trimmed AOT dll correctly.");
}
}
return null;
}
protected abstract bool TryResolveAssembly(string assemblyName, out string assemblyPath);
}
}
View on GitHub (pinned to 5cab01f7a8)
Solutions
- Compile the hot update assemblies first (HybridCLR/CompileDll or a normal build) so the DLLs exist in the expected output folder.
- Open HybridCLR Settings and set External Hot Update Path to the directory containing the DLL if it is built outside Unity.
- Verify the assembly name matches exactly (case-sensitive, no .dll extension) against what the resolver expects.
- Check that the assembly's .asmdef/.csproj actually produces a DLL with that name.
Defensive patterns
Strategy: validation
Validate before calling
foreach (var name in SettingsUtil.HotUpdateAssemblyNamesIncludePreserved)
{
if (string.IsNullOrEmpty(resolver.ResolveAssembly(name, false)))
Debug.LogError("Hot update DLL " + name + " cannot be resolved. Check output dir / external path.");
} Prevention
- Compile hot update DLLs before running any HybridCLR generation step.
- Configure External Hot Update Path when DLLs are built outside Unity default output.
- Add a pre-generation validation pass that resolves every hot update assembly name.
When it happens
Trigger: Any code path that calls resolver.ResolveAssembly(name, true) where name is listed in HotUpdateAssemblyNamesIncludePreserved but no DLL file can be located in the configured search paths (project output, HybridCLRData, external hot update path).
Common situations: The hot update DLL was not compiled before generation ran; the external hot update path setting is empty or wrong; the DLL lives in a non-standard output directory; a CI checkout missing a prebuilt hot update DLL artifact.
Related errors
- hot update assembly name cann't be empty
- hot update assembly:{hotUpdateDll} is duplicated
- hot update assembly:{hotUpdateDllName} doesn't exist
- resolve AOT dll:{assemblyName} failed! Please make sure that
- ERR_LocationPrimaryUnavailable
AI-assisted analysis of egametang/ET@5cab01f7a8 (2026-08-13).
Data as JSON: /api/errors/e4caaf3020767223.
Report an issue: GitHub.