Всегда является COMException 0x80040154 'Классом, не зарегистрированным'?

Делает Систему. Время выполнения. InteropServices. COMException 0x80040154 всегда означают, что класс не регистрируется? Я получаю COMException, который говорит, что "Получение фабрики COM-класса для компонента с CLSID {29131539-2EED-1069-BF5D-00DD011186B7} перестало работать из-за следующей ошибки: 80040154". Это пытается загрузить Interop.Domino.dll, который является ссылкой, из которой я добрался от вкладки COM, Добавляет Ссылка, названная "Объекты Lotus Domino", который указывает на domobj.tlb в папке программы Примечаний.

Я написал код несколько лет назад - это - единственная вещь, которую я когда-либо делал с interop, и справедливости ради стоит отметить, что я никогда действительно справился с ним.

Я вижу эту ошибку снова после перемещения кода к серверу R2 2008 года (таким образом, это - x64). Это писалось на XP и работалось 2003 (оба x86). Для диагностирования проблемы я создал Win7 x86 (потому что существует № R2 x86), поле, и это работало. Я также создал 2003 x64 поле, и оно перестало работать с той же ошибкой, таким образом, похоже, что оно вызывается путем перемещения в x64 архитектуру. Есть ли что-то, что я должен сделать при выполнении interop, чтобы заставить x86 COM DLL работать над x64 машинами?

5
задан ssg31415926 10 March 2010 в 11:27
поделиться

1 ответ

Обратите внимание на регистрацию 32-битных компонентов с использованием правильного регистра (C: \ Windows \ SysWOW64 \ regsvr32.exe).
Если вы уже зарегистрировались с 64-битной версией, отмените регистрацию каждой DLL с той же версией.

Дополнительную помощь можно найти здесь Команда переходит с XP32 на XP64 для разработки .NET - Есть ли проблемы?

Удачи

2
ответ дан 14 December 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: