【发布时间】:2021-12-02 14:58:58
【问题描述】:
我刚刚开始使用 Quartz.NET 调度程序。我只是从https://www.quartz-scheduler.net/documentation/quartz-3.x/tutorial/using-quartz.html 复制代码来检查工作。
static async Task Main(string[] args)
{
Console.WriteLine("Hello World!");
// construct a scheduler factory using defaults
StdSchedulerFactory factory = new StdSchedulerFactory();
// get a scheduler
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
// define the job and tie it to our HelloJob class
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity("myJob", "group1")
.Build();
// Trigger the job to run now, and then every 40 seconds
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("myTrigger", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(40)
.RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
}
但即使在明确添加 System.Configuration.ConfigurationManager dll 后,我也会收到以下消息。
System.Configuration.ConfigurationManager in the System.TypeLoadException
HResult=0x80131522
Message=Could not load type 'System.Configuration.ConfigurationManager' from assembly 'System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Source=Quartz
StackTrace:
at Quartz.Util.Configuration.GetSection(String sectionName)
at Quartz.Impl.StdSchedulerFactory.InitializeProperties(ILog logger, Boolean throwOnProblem)
at Quartz.Impl.StdSchedulerFactory.Initialize()
at Quartz.Impl.StdSchedulerFactory.<GetScheduler>d__69.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Scheduler.Program.<Main>d__0.MoveNext()
请有人建议我如何解决这个问题。
【问题讨论】:
-
您有 .NET Core 应用程序或 .NET Standard 吗?该库应该与哪个库一起使用? :)
-
我项目的目标框架是 .NET 5。“Quartz.NET 支持 .NET Core/netstandard 2.0 和 .NET Framework 4.6.1 及更高版本。” ,正如官方文档所述,ConfigurationManager dll 是从此路径
system.configuration.configurationmanager.5.0.0.nupkg\lib\net461\System.Configuration.ConfigurationManager.dll引用的。根据 .nupkg 文件中提到的版本,它应该支持我的解决方案的目标框架。
标签: c# quartz.net