Что заставляет инициализатор типа для System.Management.MTAHelper выдавать исключение - PullRequest
1 голос
/ 12 января 2011

... и как ее решить?

Вызывается из 32-разрядного приложения .Net, работающего в 64-разрядной версии Windows.

На машине установлена ​​необходимая платформа .Net.

Mozilla / 4.0 (совместимо; MSIE 8.0; Windows NT 6.1; WOW64; Trident / 4.0; SLCC2; .Net CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.3070729; Media Center PC 6.0; .NET4.0C)

РЕДАКТИРОВАТЬ: Вот внутреннее исключение

Источник исключения: System.Management

Тип исключения:System.Runtime.InteropServices.COMException

Сообщение об исключении: получение фабрики классов COM для компонента с CLSID {A8F03BE3-EDB7-4972-821F-AF6F8EA34884} не удалось из-за следующей ошибки: 80040154.

Исключительный целевой сайт: .cctor

Ответы [ 3 ]

1 голос
/ 12 января 2011

В MSDN-сообщении , в котором сообщается о той же проблеме, есть решение:

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

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

Нет объяснения, почему путь может быть неправильным, но кажется, что он сработал ... вы могли бы хотя бы проверить этот параметр реестра и посмотреть, выглядит ли он неправильно на соответствующем поле.

1 голос
/ 29 марта 2013

Я только что решил это!Мне пришлось переустановить .NET 1.1 на Windows 7. Вот как:

Скачано: http://www.microsoft.com/Downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=en Скачано: http://www.microsoft.com/downloads/details.aspx?FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38&displaylang=en

Затем:

mkdir c:\dotnetfx
c:\DotNet
dotnetfx.exe /T:c:\dotnetfx /C
c:\dotnetfx\msiexec.exe /a netfx.msi TARGETDIR=C:\DotNet
NDP1.1sp1-KB867460-X86.exe /Xp:C:\DotNet\netfxsp.msp
msiexec.exe /a c:\DotNet\netfx.msi /p c:\DotNet\netfxsp.msp
C:\DotNet\netfx.msi
0 голосов
/ 12 января 2011

Трудно сказать без дополнительных подробностей, но когда вы получаете TypeInitializationException, отметьте InnerException, оно обычно содержит основную причину.

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