ADN Open CIS
Сообщество программистов Autodesk в СНГ

29/05/2013

Ошибка "Проблема при загрузке приложения " на 64-разрядной Windows при использовании GetInterfaceObject

Вопрос:

У меня есть AutoCAD .NET сборка, которая является ActiveX сервером, что позволяет мне управлять сборкой из внешнего приложения. Это хорошо работает в 32-разрядной Windows, но в 64-разрядной я получаю ошибку «Проблема при загрузке приложения» ("Problem in loading application") когда использую метод GetInterfaceObject() для доступа к моему ActiveX серверу. Я проверил, что сборка загружена, так что непонятно в чем ошибка.

Ответ:

Когда вы создаёте ваше приложение в 64-разрядной Windows, тогда ActiveX сервер внутри вашей сборки регистрируется Visual Studio в 32-разрядной части реестра, так как сама Visual Studio 32-разрядная даже в 64-разрядной Windows. Так что вам придётся самостоятельно зарегистрировать вашу сборку с использованием 64-разрядной версии утилиты regasm.

Простейшее решение – добавить в ваш проект в категорию Build Event, которое выполняется при каждом успешном построении вашего проекта:

"C:\Windows\Microsoft.NET\Framework64\v2.0.50727\regasm.exe"

Источник: http://adndevblog.typepad.com/autocad/2012/06/error-problem-in-loading-application-on-64-bit-os-when-using-getinterfaceobject.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=53.0

Опубликовано 29.05.2013
Отредактировано 06.06.2013 в 11:30:16