{"record":{"id":"e4caaf3020767223","repo":"egametang/ET","slug":"resolve-hot-update-dll-assemblyname-failed-plea","errorCode":null,"errorMessage":"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.","messagePattern":"resolve Hot update dll:(.+?) failed! Please make sure that this hot update dll exists or the search path is configured in the external hot update path\\.","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"Packages/cn.etetet.hybridclr/Scripts/Editor/Share/Meta/AssemblyResolverBase.cs","lineNumber":21,"sourceCode":"using System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nnamespace HybridCLR.Editor.Meta\n{\n    public abstract class AssemblyResolverBase : IAssemblyResolver\n    {\n        public string ResolveAssembly(string assemblyName, bool throwExIfNotFind)\n        {\n            if (TryResolveAssembly(assemblyName, out string assemblyPath))\n            {\n                return assemblyPath;\n            }\n            if (throwExIfNotFind)\n            {\n                if (SettingsUtil.HotUpdateAssemblyNamesIncludePreserved.Contains(assemblyName))\n                {\n                    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.\");\n                }\n                else\n                {\n                    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.\");\n                }\n            }\n            return null;\n        }\n\n        protected abstract bool TryResolveAssembly(string assemblyName, out string assemblyPath);\n    }\n}\n","sourceCodeStart":3,"sourceCodeEnd":34,"githubUrl":"https://github.com/egametang/ET/blob/5cab01f7a8bee5f49f4781eebe9e2b1c6d7ebe0f/Packages/cn.etetet.hybridclr/Scripts/Editor/Share/Meta/AssemblyResolverBase.cs#L3-L34","documentation":"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.","triggerScenarios":"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).","commonSituations":"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.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"foreach (var name in SettingsUtil.HotUpdateAssemblyNamesIncludePreserved)\n{\n    if (string.IsNullOrEmpty(resolver.ResolveAssembly(name, false)))\n        Debug.LogError(\"Hot update DLL \" + name + \" cannot be resolved. Check output dir / external path.\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["hybridclr","assembly-resolution","hot-update","configuration"],"backgroundTag":null,"analyzedSha":"5cab01f7a8bee5f49f4781eebe9e2b1c6d7ebe0f","analyzedAt":"2026-08-13T21:10:40.377Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}