Я борюсь с .net activeX, который я пытаюсь использовать в ms axapta 2009.
используя этот компонент на моем локальном компьютере, где он был скомпилирован, он работает нормально. его можно добавить как элемент activeX в форму, методы и события перечислены в axapta-activeX-explorer, и я могу без проблем взаимодействовать с ним.
но попытка распространить DLL другим клиентам не работает должным образом. регистрация dll через regasm / codebase / tlb работает исправно - получено сообщение, регистрация прошла успешно. компонент также отображается при выборе элемента activeX для добавления в ax, но не перечисляются ни функции, ни свойства. и запуск формы приводит к сообщению об ошибке - CLSID компонента activeX ... не найден в системе, не установлен. classID действительно тот, который определен в .net.
странные вещи случаются, заглянув в диспетчер задач. сам компонент activeX - это просто оболочка для взаимодействия с com-приложением. при запуске топора с неработающим и _не_установленным_ !! activeX-thing, диспетчер задач показывает новый процесс com-приложения, экземпляр которого запускается activeX: /
вещи, которые я пробовал:
- с использованием разных версий regasm, например \ Windows \ Microsoft.NET \ Framework \ v2.0.50727; C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727
- использование новых GUID в .net, до удаления старых из реестра
- компиляция с использованием разных версий .NET Framework
- выполнение регистрации через regasm, regasm / codebase, regasm / codebase / tlb, используя установку visual-studio
- запуск регистрации через командную строку от имени администратора
- запуск установки от имени администратора
- запускать даже топор как администратор на клиентской машине
- перемещение dll в другую папку с последующей новой регистрацией (windows / system32; ax / client / bin)
- установка в GAC (gacutil / i)
- различные варианты проекта в Visual Studio (COM-Visibility; регистрация для COM-взаимодействия; другая targetPlatform)
надеялся на то, что компиляция в Visual Studio с включенной опцией register for COM-Interop делает что-то большее, чем просто regasm-registration, я использовал инструмент registry-monitor-microsoft для регистрации активности реестра, которая произошла во время компиляции.
использование этих журналов для создания всех записей реестра на целевом клиенте также не сработало.
любые подсказки или помощь будут очень признательны! эта штука блокирует меня уже несколько дней :(