Kentico 12 MVC切换NuGet包后遇预初始化前需注册额外程序集错误
Kentico 12 MVC 替换NuGet包后"Additional assemblies have to be registered before application pre-initialization"错误解决
错误指向的额外程序集
该错误所指的额外程序集通常是项目自定义的Kentico模块/扩展程序集,或是依赖的第三方Kentico集成组件程序集。从本地Lib文件夹引用切换到NuGet包后,原有的程序集预加载逻辑可能丢失,导致Kentico在初始化时无法自动发现这些需要提前注册的程序集。
解决方法
- 检查初始化代码位置:在
Global.asax.cs的Application_Start方法中,确保在CMSApplication.Init()调用之前添加程序集预加载逻辑。 - 添加程序集预加载代码:
// 方式1:加载指定的自定义程序集 AssemblyLoader.PreloadAssemblies(@"~/bin/YourCustomModuleAssembly.dll"); // 方式2:批量加载bin目录下所有需要预初始化的程序集(适合多个自定义组件场景) AssemblyLoader.PreloadAssemblies(); - 清理残留引用:移除项目中所有指向原Lib文件夹的旧程序集引用,确保所有Kentico相关引用均来自NuGet包,然后清理解决方案并重新生成。
- 验证配置一致性:检查
web.config中的<assemblyBinding>节点,确保所有Kentico程序集的版本绑定为12.0.29,避免版本冲突。 - 确认自定义模块注册:如果项目包含自定义Kentico模块,检查模块类的
OnInit方法是否正确实现,且程序集已被正确加载。
内容的提问来源于stack exchange,提问作者tone
相关产品推荐
相关产品推荐

