У меня есть приложение .NET 3.5, которое скомпилировано с конфигурацией Любой ЦП . Приложение ссылается на файл OCX с помощью сборки взаимодействия.
При установке приложения на 32-битную Windows 7 все работает нормально. Когда такое же приложение установлено в 64-разрядной версии Windows 7, мы получаем ошибку:
Не удалось получить фабрику класса COM для компонента с CLSID {CCB90182-B81E-11D2-AB74-0040054C3719} из-за следующей ошибки: 80040154
Использование Process Monitor из SysInternals Я мог видеть, что в 32-разрядной ОС система пытается загрузить следующий раздел реестра.
HKCR\Wow6432node\CLSID\{above CLSID}\InprocServer or
HKCR\Wow6432node\CLSID\{above CLSID}\InprocServer32
, которые доступны, и поэтому приложение работает.
В 64-битной версии Windows ищет
HKCR\Wow6432node\CLSID\{above CLSID}\InprocHandler or
HKCR\Wow6432node\CLSID\{above CLSID}\InprocHandler32
Ни один из них не существует.
Как его можно заставить работать в 64-битной Windows 7?