使用Quartz.NET时出现Could not load type ConfigurationManager报错如何解决
可行解决方法如下:
- 优先通过NuGet安装官方发布的
System.Configuration.ConfigurationManager包,不要手动添加本地dll,手动导入dll容易出现版本不匹配问题,导致程序集加载失败。 - 若安装NuGet包后仍报错,根据你的项目类型补充对应配置:
- 若为.NET Framework项目,在
App.config的<runtime>节点下添加绑定重定向,将所有版本的ConfigurationManager指向你安装的版本,示例如下:
- 若为.NET Framework项目,在
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Configuration.ConfigurationManager" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <!-- newVersion值替换为你实际安装的NuGet包版本号 --> <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> </dependentAssembly> </assemblyBinding>
- 若你只需要做简单测试,可以直接用代码配置调度器工厂,绕开配置文件读取逻辑,就不会触发ConfigurationManager的依赖调用,修改初始化代码如下:
// 手动传入基础配置,不读取系统配置文件 var factoryProps = new System.Collections.Specialized.NameValueCollection { { "quartz.serializer.type", "binary" } }; StdSchedulerFactory factory = new StdSchedulerFactory(factoryProps);
- 完成上述操作后,删除项目根目录下的bin、obj文件夹,重新编译运行即可。
内容的提问来源于stack exchange,提问作者Akanksha_p
相关产品推荐
相关产品推荐

