Расположение плагинов Inventor

Автор Тема: Расположение плагинов Inventor  (Прочитано 6207 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Добрый день.
Подскажите пожалуйста, можно ли как-то изменить каталог,
в котором располагаются плагины Inventor. То есть я хочу расположить dll своего плагина и
все необходимые ему библиотеки в отдельном каталоге …\Inventor2019\bin\MyPlugin. Но как это сделать
не знаю.
Благодарю за информацию.
 

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Расположение плагинов Inventor
« Ответ #1 : 23-09-2019, 18:21:53 »
прочитайте страницу 40, там пдф-ка "Создание и отладка Эддин" про тэг Assembly
https://drive.google.com/drive/folders/0B655LZZcPbyNfk0yMUtKSFNMZEVMZHZ1WHhuT0FBSVNORGdzUExkMkhpdTFiOFl1ZkxxekU

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Re: Расположение плагинов Inventor
« Ответ #2 : 24-09-2019, 12:42:55 »
Спасибо.
С расположением dll самого плагина получилось. Но у меня есть ряд dll-библиотек, которые необходимы плагину.
Подскажите пожалуйста, как сделать так, чтобы плагин искал их в той же папке, где он сам. Сейчас он по-прежнему
ищет их в …\Inventor2019\bin.
Строчка
Код - C# [Выбрать]
  1. System.IO.Directory.SetCurrentDirectory(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location));
почему-то не помогает.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #3 : 24-09-2019, 13:12:29 »
Подскажите пожалуйста, как сделать так, чтобы плагин искал их в той же папке, где он сам.
А если ты их сам загрузишь при помощи Assembly.LoadFrom() ?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #4 : 24-09-2019, 13:20:01 »
Вот эта тема может помочь: https://adn-cis.org/forum/index.php?topic=8085.msg28508#msg28508
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Re: Расположение плагинов Inventor
« Ответ #5 : 24-09-2019, 14:48:14 »
   Насколько я понял из темы, необходимо написать обработчик AssemblyResolve, выдающий одну из
загруженных сборок. Должен ли я при этом принудительно загрузить все необходимые сборки с помощью
LoadFile() или LoadFrom()?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #6 : 24-09-2019, 15:14:19 »
Должен ли я при этом принудительно загрузить все необходимые сборки с помощью
LoadFile() или LoadFrom()?
Можешь их загрузить в самом событии AssemblyResolve.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Re: Расположение плагинов Inventor
« Ответ #7 : 24-09-2019, 16:27:32 »
Почему-то получается не для всех библиотек. Для некоторых действительно работает.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #8 : 24-09-2019, 16:29:08 »
Почему-то получается не для всех библиотек. Для некоторых действительно работает.
Это всё .NET-сборки или часть из них mixed или unmanaged? Ну и надеюсь, что ты подписался на это событие до того, как реально используется не найденная сборка.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Re: Расположение плагинов Inventor
« Ответ #9 : 24-09-2019, 16:31:48 »
Скорей всего, есть и те, и другие. А, возможно, и .NET.
Я, если честно точно не знаю. Их достаточно много.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #10 : 24-09-2019, 16:42:21 »
Скорей всего, есть и те, и другие.
Ну с unmanaged так поступать нельзя. Их загружают при помощи функции LoadLibrary из Win32
Можно еще задать каталог, в котором будут искаться unmanaged, если путь к ним не задан явно:
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setdlldirectoryw
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Re: Расположение плагинов Inventor
« Ответ #11 : 25-09-2019, 11:37:08 »
Почему-то не грузится одна dll-сборка.
Но она, вроде бы, полностью .NET-овская.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #12 : 25-09-2019, 16:08:15 »
Почему-то не грузится одна dll-сборка.
Но она, вроде бы, полностью .NET-овская.
Для неё вызывается обработчик AssemblyResolve? Может она в свою очередь нуждается еще в каких-то сборках?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Re: Расположение плагинов Inventor
« Ответ #13 : 26-09-2019, 11:39:59 »
Да, нуждается. Получается предварительно, наверное, нужно загрузить их?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #14 : 26-09-2019, 11:41:34 »
Да, нуждается. Получается предварительно, наверное, нужно загрузить их?
А для этих сборок не срабатывает AssemblyResolve?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Re: Расположение плагинов Inventor
« Ответ #15 : 26-09-2019, 11:52:11 »
Я их просто предварительно не загружал. Поэтому, видимо, нет.
Но кажется, я решил, проблему путем перемещения папки со всеми сборками в другое место.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #16 : 26-09-2019, 12:00:29 »
Я их просто предварительно не загружал. Поэтому, видимо, нет.
Причем здесь "не загружал"? Событие AssemblyResolve отрабатывает при необходимости использовать сборку, которая не загружена. И именно в этом событии её нужно самостоятельно загрузить.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Re: Расположение плагинов Inventor
« Ответ #17 : 26-09-2019, 12:36:32 »
Ааа, видимо я не совсем правильно уловил суть события AssemblyResolve.
Спасибо, посмотрю.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #18 : 04-10-2019, 11:07:13 »
Vladislav,
Ну и как? Проблема решилась?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 210
  • Карма: 0
Re: Расположение плагинов Inventor
« Ответ #19 : 08-10-2019, 15:05:04 »
Да. Путем использования обработчика AssemblyResolve и перемещения всей папки с плагином и сопутствующими библиотеками
в кореневой каталог Inventor2019. Не работало, когда эта папка лежала в Inventor2019\bin

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Расположение плагинов Inventor
« Ответ #20 : 08-10-2019, 15:16:00 »
Да. Путем использования обработчика AssemblyResolve и перемещения всей папки с плагином и сопутствующими библиотеками
в кореневой каталог Inventor2019. Не работало, когда эта папка лежала в Inventor2019\bin
Непонятно зачем и то и другое. Должно было быть достаточно обработчика AssemblyResolve.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение