Ошибка запуска приложения, которое зависит от WMI - PullRequest
2 голосов
/ 17 сентября 2011

Я только что разработал приложение, которое использует класс system.manament, но у моего друга возникли проблемы с использованием приложения, поскольку оно выдает ошибки.У него установлены winxp sp3 и .Net framework 2.0, как и у меня.

System.TypeInitializationException: The type initializer for

'System.Management.MTAHelper' вызвал исключение.---> System.Runtime.InteropServices.COMException (0x80040154): получение фабрики классов COM для компонента с CLSID {A8F03BE3-EDB7-4972-821F-AF6F8EA34884} не удалось из-за следующей ошибки: 80040154. в System.Management.MTAHelper..cctor ()

как я могу развернуть это приложение, убедившись, что wmi присутствует?в чем может быть проблема?

Ответы [ 2 ]

2 голосов
/ 17 сентября 2011

Убедитесь, что WMI работает.В командной строке:

net start winmgmt

Если вы распространяете свое приложение как службу Windows, вы можете установить зависимость от WMI во время установки службы.Также стоит посмотреть на this :

Так что я пошел в HKCR \ CLSID {A8F03BE3-EDB7-4972-821F-AF6F8EA34884} \ InprocServer32 (по умолчанию) в моей среде x64и увидел следующий путь: C: \ Windows \ system32 \ mscoree.dll.

Клиент изменил путь C: \ WINDOWS \ SysWOW64 \ mscoree.dll, который он нашел там, на правый, и он больше не получил ошибку.

Если выреестр serch, как предлагает Кен Уайт , и у него нет 'HKCR \ CLSID {A8F03BE3-EDB7-4972-821F-AF6F8EA34884}', возможно, стоит переустановить .NET.Также посмотрите на это .

2 голосов
/ 17 сентября 2011

Ошибка 0x80040154 HRESULT, указанная в сообщении, означает, что используемый класс COM не зарегистрирован в системе.(Это также может означать, что зависимый класс не зарегистрирован; ваш COM-класс не может разрешить зависимость, и этот код ошибки возвращается, вызывая исключение.)

Очевидно, что между рабочимисистемы или фреймворки, установленные на вашем компьютере и у вашего друга.Мы не можем сказать вам, что они могут быть, потому что вы не опубликовали код.Вероятно, вы можете начать отслеживать его, выполнив поиск в реестре Windows на вашем компьютере CLSID, показанного в сообщении об ошибке ({A8F03BE3-EDB7-4972-821F-AF6F8EA34884}).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...