2010-06-01 3 views
2

я борюсь с .net ACTIVEX я стараюсь использовать в MS Axapta 2009.ACTIVEX компонент в Axapta

использует этот компонент на моей локальной машине, где он был скомпилирован, он работает довольно хорошо. он может быть добавлен как элемент activeX в форме, методы и события перечислены в axapta-activeX-explorer, и я могу без проблем взаимодействовать с ним.

но попытка распространить dll другим клиентам не работает должным образом. регистрация DLL через regasm/codebase/tlb работает правильно - получение сообщения, регистрация прошла успешно. компонент также указан при выборе активного элемента X для добавления в топор, но не указаны ни функции, ни свойства. и запуск формы приводит к ошибке errnoessage - activeX компонент CLSID ... не найден в системе, не установлен. classID действительно тот, который определен в .net.

странные вещи случаются, глядя на диспетчера задач. сама activeX-компонент является всего лишь оболочкой для взаимодействия с ком-приложением. при запуске Ax-формы с не работает и _not_installed_ !! ACTIVEX-вещь, TaskManager показывает новый процесс ком-приложение, которое инстанциировано по ACTIVEX:/

вещей я попытался:

  • с использованием различных версий Regasm, например \ Windows \ Microsoft. NET \ Framework \ v2.0.50727; C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727
  • с использованием нового GUIDs в .net, перед удалением старых из реестра
  • компиляции, используя различные версии платформы .NET
  • делает регистрация через Regasm, Regasm /, Regasm кодовой базы// TLB кодовой базы, используя наглядную-студию-установки
  • выполняется регистрация с помощью командной строки, как администратор
  • работает установку администратор
  • работают даже топор в качестве администратора на клиент- машина
  • перемещение dll в другую папку, за которой следует новая регистрация (windows/system32; Топор/клиент/бен)
  • установки в GAC (gacutil/я)
  • различных проектов-вариантов в Visual Studio (COM-видимости; зарегистрировать для COM-Interop, разные targetPlatform)

надеялся на факт, что компиляция в visual studio с регистратором для включенной опции COM-Interop делает что-то большее, чем просто регистрация regasm, я использовал инструмент-монитор-microsoft-инструмент для регистрации активности реестра, который произошел во время компиляции.

Использование этих журналов для создания всех записей реестра на целевом клиенте дополнительно не сработало.

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

+0

Почему вы получаете доступ к компоненту .Net через интерфейс COM вместо прямого доступа к CLR? Вы пробовали доступ через регистрацию в AOT \ References? Вы пробовали regsvr32 для регистрации DLL (Regasm должен выполнить эту работу). Regsvr32 используется для регистрации компонентов COM/ActiveX. –

+0

Попробуйте указать точное сообщение об ошибке. –

+0

Почему объект ActiveX - это визуальный компонент, который должен быть встроен в форму AX? –

ответ

1

«целевой» -Применение, с которой я хочу, чтобы взаимодействовать является автономный ехе с COM-функциональностью. , как я знаю, COM не является (или не будет) поддерживается в AX 2009 - поэтому .net должен использоваться. , если я правильно понимаю ваш ответ, это просто один раунд! dll просто работает как обертка для доступа к упомянутому выше приложению. regsvr32 не работает с dll, так как regasm должен использоваться для регистрации. Я также добавил ссылку в AOT - без изменений. Любопытная вещь - она ​​уже сработала и все еще работает над моей локальной системой dev. но не в других системах.

+0

COM + поддерживается AX 2009, но может быть и не в будущих версиях. –

+0

Я до сих пор не понял, как ваша «целевая» -приложение и AX должны работать вместе. Что такое «основное» приложение, какой тип связи необходим между этими двумя. –

1

проблема решена. все было правильно - только вводит в заблуждение, что было сообщения об ошибке запуска формы с ActiveX-компонента добавляется, рассказывающая «компонент не найден в системе ...»

это была совершенно другая ошибка в коде ACTIVEX: разбор XML-документа со специальным символом в нем и без определения правильной изо-кодировки в xml-файле вызвал ошибку, не улавливаемую. это (!!) вызвало все дальнейшие проблемы и аварийную ошибку, упомянутую в начальном посте:/

спасибо в любом случае за помощью.

Смежные вопросы