Вопрос по работе ссылок на RevitAPI.dll и RevitAPIUI.dll

Автор Тема: Вопрос по работе ссылок на RevitAPI.dll и RevitAPIUI.dll  (Прочитано 2071 раз)

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

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 2
Добрый День уважаемые разработчики. Интересует следующий вопрос по ссылкам на библиотеки RevitAPI.dll и RevitAPIUI.dll.  Я, как и написано в рекомендациях, устанавливаю свойство копировать сборки локально в false. Вопрос следующий, когда я создаю ссылки на сборки  RevitAPI.dll и RevitAPIUI.dll я указываю путь к библиотекам, как они расположены по конкретному пути - на МОЕМ компьютере. Будет ли работать плагин, если на компьютере пользователя revit установлен в другой папке, у него же пути к сборкам другие? Насколько я понял сборки RevitAPI.dll и RevitAPIUI.dll не устанавливаются в  глобальный кэш сборок (GAC), но заметил, что плагин все равно работает даже если путь к сборкам неактуален, например плагин ссылающийся на компьютере на сборки revit 2017, если плагин установить на  revit 2018 (без установленного Revit 2017), оставив в плагине старые пути к сборкам (на revit 2017), плагин нормально работает на revit 2018, хоть по идее не должен работать, так как пути неактуальны. Прошу пояснить как это возможно и почему работает плагин ссылающийся на сборки RevitAPI.dll и RevitAPIUI.dll по устаревшим путям??? Получается я могу сделать плагин под одну версию, например 2017, и он нормально будет работать на всех более поздних версиях Revit?? Или все таки надо делать отдельную версию плагина под каждую версию revit?
« Последнее редактирование: 28-11-2018, 22:39:22 от Ksarrik »

Отмечено как Решение Ksarrik 28-11-2018, 19:50:49

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Без разницы где установлен Ревит. А глобальный кэш сборок вообще тут не участвует ))
Все просто - сам Ревит во время загрузки грузит все свои библиотеки, включая и RevitAPI.dll и RevitAPIUI.dll. И когда ваш плагин загружается в Ревит, то он загружается в домен Ревита, в котором уже инициализировано все остальное. Это если объяснять не умными словами  :D Умными словами не очень умею

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Получается я могу сделать плагин под одну версию, например 2017, и он нормально будет работать на всех более поздних версиях Revit?? Или все таки надо делать отдельную версию плагина под каждую версию revit?
Касаемо Ревита - очень желательно делать разные сборки, так как АПИ у Ревита часто меняется. Вы можете заюзать метод из либы от 2015 Ревита, который в 2017 уже будет исключен из АПИ. Ваш плагин конечно-же рухнет

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 2
Спасибо!