Я создал надстройку C# в VS2015 для импорта и синхронизации моделей данных из Power Designer в Enterprise Architect. У него есть зависимости для PDPDM, PDLDM, PDCDM и Interop.EA.
Проблема заключается в том, что происходит сбой при развертывании и последующем запуске на компьютере Windows 7.
Для установки Надстройка я делаю следующее:
Зарегистрируйте dll надстройки в записях базы кодов COM в реестре, используя regasm.exe. Открыв командную строку в папке, куда вы скопировали dll надстройки и зарегистрируйте dll с параметром / codebase. В моем случае эта команда будет:% WINDIR% \ Microsoft.NET \ Framework \ v4.0.30319. \ RegAsm.exe -tlb -codebase
Добавить ключ реестра: Добавить ключ в 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.
Я преследую этот код ошибки и ошибки с помощью среды / сборщика мусора