Использование библиотеки Microsoft.Win32.TaskScheduler для Windows Server 2016 - PullRequest
0 голосов
/ 17 января 2020

Я использовал библиотеку Microsoft.Win32.TaskScheduler для отображения, отображения и запуска задач в C# из планировщика задач на моем Windows Server 2008 в течение многих лет. Я обновляю сервер до Windows Server 2016 и столкнулся с проблемой при использовании этой библиотеки DLL. При попытке получить Задачи на сервере с помощью этого кода:

List<TaskObject> tasks = new List<TaskObject>();
using (TaskService ts = new TaskService(servername))
{
     tasks = ts.RootFolder.AllTasks.Where(x => x.Definition.Principal.UserId != null)
             .Select(x => new TaskObject(x, servername)).ToList();
}

я получаю следующую ошибку:

The current version of the native library (1.1) does not support the original or minimum version of the "EDP Policy Manager" task

Я провел некоторые исследования, и это выглядит например, Microsoft.Win32.TaskScheduler DLL была построена для Windows Server 2008 и Windows Server 2003. Кто-нибудь знает, есть ли доступная обновленная DLL или исправление? В конечном счете, если не существует решения относительно Microsoft.Win32.TaskScheduler DLL, кто-нибудь узнает о каких-либо аналогичных заменах DLL, которые я должен изучить при использовании?

1 Ответ

2 голосов
/ 17 января 2020

Согласно официальному репозиторию GitHub TaskScheduler

Управляемая сборка очень похожа на новую объектную модель, но позволяет манипулировать COM-объектами 1.0 (внутренняя версия 1.1). , Он автоматически выберет самую последнюю версию библиотеки, найденную в хост-системе (до версии 1.4).

Таким образом, максимальная поддерживаемая версия - 1.4. Похоже, вам следует обновить используемую версию этого dll до Nuget .

Не путайте имя пакета или репозитория, внутри Microsoft.Win32.TaskScheduler.dll пакет

...