Я пытаюсь создать COM-объект, используя следующий код:Невозможно создать экземпляр COM-класса с помощью Activator.CreateInstance
Type testlib = Type.GetTypeFromProgID("TestComApp.TestApp.TestClass");
dynamic comObj = Activator.CreateInstance(testlib);
Но получаю ошибку:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll
Additional information: Retrieving the COM class factory for component with CLSID {FD909333-3CD0-477F-8A7E-B8045B0B84EC} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154REGDB_E_CLASSNOTREG)).
Я пытался здание проект с платформой AnyPlatform, X86, x64 и используемым RegAsm
для 32 и 64 бит.
Но все еще не в состоянии заставить его работать. Я проверил в реестре, а класс и CLSID с GUID существует
Используйте монитор процессов SysInternals. Используйте его при запуске Regasm.exe, вы можете точно определить, какие ключи реестра записываются. И используйте его при запуске своего клиентского приложения, вы можете точно видеть, какие ключи читаются. Несоответствие, которое вы видите, дает вам сильное влияние на основной вопрос. –
ProgId - это всего лишь одна часть регистрации. Что у вас есть в HKCR \ CLSID? – acelent