Сбой надстройки Enterprise Architect .dll при развертывании на компьютере Windows 7 - PullRequest
0 голосов
/ 15 января 2020

Я создал надстройку C# в VS2015 для импорта и синхронизации моделей данных из Power Designer в Enterprise Architect. У него есть зависимости для PDPDM, PDLDM, PDCDM и Interop.EA.

Проблема заключается в том, что происходит сбой при развертывании и последующем запуске на компьютере Windows 7.

Для установки Надстройка я делаю следующее:

  1. Зарегистрируйте dll надстройки в записях базы кодов COM в реестре, используя regasm.exe. Открыв командную строку в папке, куда вы скопировали dll надстройки и зарегистрируйте dll с параметром / codebase. В моем случае эта команда будет:% WINDIR% \ Microsoft.NET \ Framework \ v4.0.30319. \ RegAsm.exe -tlb -codebase

  2. Добавить ключ реестра: Добавить ключ в HKEY_CURRENT_USER \ Software \ Sparx Systems \ EAAddins в форме [ProjectName]. [ClassName]

Эта установка отлично работает как на разрабатываемых, так и на развернутых машинах, и я могу запустить добавить в. Надстройка полностью работает при установке на компьютере разработчика.


Однако на развернутой машине Windows 7 она вылетает в одном конкретном c случае:

  • При запуске импорта для физической модели данных надстройка начинает работать (начинает извлекать информацию о Power Designer), а затем неожиданно вылетает только с сообщением о том, что ее Enterprise Architect «перестал работать». В журнале событий информация указывает на. NET clr.

Это неожиданно, поскольку надстройка была зарегистрирована с одинаковой версией. NET в обоих случаях.


Я исследовал исходный код и сравнил его с рабочим dll, созданным с использованием тех же библиотек, и не обнаружил различий. Я уверен, что это связано со средой развертывания на компьютере Windows 7.

Есть идеи, почему надстройка может давать сбой на компьютере Windows 7?

И какие исправления предложены?

ОБНОВЛЕНИЕ: Я пытался сузить и закомментировать аспекты кода, чтобы он работал на машине Windows 7. Независимо от того, что я комментирую, когда он начинает читать какую-либо часть физической модели из конструктора электропитания, происходит сбой, но это не относится ко всем другим моделям данных (логическим и концептуальным).

Учитывая то, как он ведет себя Я смотрю дальше в среду и развертывание.

Любая помощь по-прежнему высоко ценится ...

ОБНОВЛЕНИЕ 2: Спасибо за помощь от всех. Я воспользовался советом и смог в итоге отследить ошибку:

Процесс был прерван из-за внутренней ошибки в. NET Runtime at IP ... с кодом выхода 80131506.

Я преследую этот код ошибки и ошибки с помощью среды / сборщика мусора

1 Ответ

1 голос
/ 23 января 2020

Проблема была, как и предполагал Гирт, с Power Designer. Используемые библиотеки типов Power Designer были разными на машинах с одним патчем для Power Designer, обновляющим библиотеку типов PdPDM до новой версии. Это изменило способ взаимодействия физических моделей данных с надстройкой при использовании библиотеки типов PdPDM.

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

...