Загрузка dll-внутри плагина

Автор Тема: Загрузка dll-внутри плагина  (Прочитано 965 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн VladislavАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 180
  • Карма: 0
Добрый вечер! Такой вопрос.
В своем плагине я использую много вспомогательных dll(как управляемых, так и нативных).
Я хочу чтобы всё находилось в одной папке (dll плагина и вспомогательные dll).
C:\Program Files\Autodesk\Navisworks Manage 2019\Plugins\MyPlugin.
Но по умолчанию Нэвис ищет все вспомогательные dll в своем корневом каталоге.
Как мне это изменить?
Внутри метода Execute не получается, потому что исключение выбрасывается раньше его первой команды.
Спасибо.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11411
  • Карма: 1476
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Загрузка dll-внутри плагина
« Ответ #1 : 05-06-2020, 23:28:09 »
Внутри метода Execute не получается, потому что исключение выбрасывается раньше его первой команды.
В какой момент выбрасывается исключение?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн VladislavАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 180
  • Карма: 0
Re: Загрузка dll-внутри плагина
« Ответ #2 : 06-06-2020, 00:12:35 »
Я и сам не пойму. В сообщении написано, что оно в Autodesk.Navisworks.Api.dll.
До точки останова на первой команде метода Execute почему-то не доходит.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11411
  • Карма: 1476
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Загрузка dll-внутри плагина
« Ответ #3 : 06-06-2020, 00:15:27 »
Я и сам не пойму. В сообщении написано, что оно в Autodesk.Navisworks.Api.dll.
До точки останова на первой команде метода Execute почему-то не доходит.
Сообщение какое? Полностью текст и картинку.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн VladislavАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 180
  • Карма: 0
Re: Загрузка dll-внутри плагина
« Ответ #4 : 06-06-2020, 00:32:21 »
Вот оно

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11411
  • Карма: 1476
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Загрузка dll-внутри плагина
« Ответ #5 : 06-06-2020, 10:52:23 »
На вскидку я вижу такое решение:
1. Пишешь плагин-заглушку, который выполняет следующие действия:
2. Находит каталог, в котором он размещен
3. Загружает все вспомогательные dll из каталога и основной плагин. Вполне возможно, что придётся подписаться на событие AssemblyResolve и написать свой обработчик для него: https://docs.microsoft.com/en-us/dotnet/standard/assembly/resolve-loads
4. Запускает метод Execute твоего основного плагина.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение