Rodelle zBiker Ответов: 1

Encoutering "класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) после изменения моего целевого процессора с любого процессора на x86


I am running a VB.NET application with crystal reports but I encounter the error. 

{"The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception."}

The inner exception is	{"Could not load file or assembly 'CrystalDecisions.ReportAppServer.CommLayer, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified.":"CrystalDecisions.ReportAppServer.CommLayer, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"}	System.Exception {System.IO.FileNotFoundException}


Что я уже пробовал:

I read the solution I saw was to change the Target CPU to ANYCPU with unckecked prefer x32-bit 

The crystal report successfully ran but now when I run the application I encounter this error. 
"Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))"

I was able to resolve the issue on the crystal reports but now encounter this error. I was wondering how to find the class that gets affected whenever I try the Target CPU. thank you. 

1 Ответов

Рейтинг:
1

CHill60

Цитата:
Мне было интересно, как найти класс, который будет затронут всякий раз, когда я попробую целевой процессор.
Инструмент, который я нашел бесценным в прошлом, - это ProcMon, который теперь входит в состав (бесплатного) набора инструментов SysInternals - Sysinternals Suite - Windows Sysinternals | Microsoft Docs[^]

Вот инструкции для Process Monitor (он же "ProcMon") Монитор Процессов - Windows Sysinternals | Microsoft Docs[^] который можно загрузить как отдельный инструмент

В принципе, вы можете отслеживать, что Windows пыталась загрузить (буквально имя dll и местоположение), так что вы можете решить, что не зарегистрировано.