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

10/03/2014

Где находятся сборки COM взаимодействия (Interop) ?

Начиная с AutoCAD 2013 мы прекратили регистрацию сборок взаимодействия с COM AutoCAD в Глобальном кэше сборок (GAC). Мы продолжаем поставлять их в составе ObjectARX SDK.

Правильный путь использования этих сборок следующий:

  • Ссылка на сборки взаимодействия в вашем проекте на файлы в каталогах ObjectARX SDK 2013 inc-win32 или inc-x64 folder, в зависимости какой разрядности (32-бита или 64-бита) будет ваша сборка. Две сборки взаимодействия – это: Autodesk.AutoCAD.Interop и Autodesk.AutoCAD.Interop.Common.
  • По умолчанию в Visual Studio 2010, следует установить Copy Local = False, и Embed Interop Types = True:

 

 

  • Хм. Вот и всё.

Установка ‘Embed Interop Types’ обеспечивает тот факт, что информация требуемая для доступа к ActiveX API, который вы используете в коде, будет встроена в ваше приложение. Вам не следует пытаться зарегистрировать сборку взаимодействия в GAC, или передавать сборки из ObjectARX SDK вместе со своим приложением, или создавать ваши собственные сборки COM взаимодействия. Если вы мигрируете старый проект, вместо создания нового вы можете просто установить ‘Embed Interop Types’ в true.

На Manufacturing DevCamp общался с Brian Ekins и обсуждение плавно скатилось к этому же вопросу. Оказалось, что для Inventor все с точностью до наоборот: возникают проблемы для Inventor-приложений если мы устанавливаем ‘Embed Interop Types’ в True  – так что для Inventor следует устанавливать в false. Мы не специально создавали такие различия между нашими продуктами. Просто это разные платформы и над ними работают совершенно разные команды разработчиков…

Источник: http://adndevblog.typepad.com/autocad/2012/06/where-did-my-interop-assemblies-go.html

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

Опубликовано 10.03.2014