Я пытаюсь создать экземпляр COM-объекта Microsoft.Update.AutoUpdate
на С#. Это работает в PowerShell:
$AutoUpdates = New-Object -ComObject "Microsoft.Update.AutoUpdate"
Однако это не работает в С#:
var autoUpdateClass = Type.GetTypeFromProgID("Microsoft.Update.AutoUpdate");
// var autoup = Activator.CreateInstance(autoUpdateClass) as IAutomaticUpdates;
В этом случае autoUpdateClass
равно нулю. Есть ли способ активировать экземпляр этого класса? Может быть, мне нужно вручную указать DLL или обеспечить правильную разрядность моего процесса?
Рабочей альтернативой было бы добавить ссылку на WUApiLib.dll
и установить для параметра «Встроить типы взаимодействия» значение false. Тогда я могу просто сделать new AutoUpdateClass()
. Недостатком является то, что у меня есть дополнительный Interop.WUApiLib.dll
, а также люди рекомендуют "никогда не делайте этого". В любом случае, я хотел бы знать, почему GetTypeFromProgID
здесь не работает.