Выгрузка Net сборок своего плагина

Автор Тема: Выгрузка Net сборок своего плагина  (Прочитано 3970 раз)

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Есть ли возможность в AutoCAD API (если не AutoCAD API, то может другими методами)
выгрузить .NET сборки плагина.
Эта задача нужна для того чтобы обеспечить "горячую" замену обновлений приложения.
Потому как ясное дело подменить файлы сборок при запущенном AutoCAD не получится.

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выгрузка Net сборок своего плагина
« Ответ #1 : 27-03-2020, 17:00:03 »
Есть ли возможность в AutoCAD API (если не AutoCAD API, то может другими методами)
выгрузить .NET сборки плагина.
Эта задача нужна для того чтобы обеспечить "горячую" замену обновлений приложения.
Потому как ясное дело подменить файлы сборок при запущенном AutoCAD не получится.
Обсуждалось и неоднократно на этом форуме. Такой возможности нет. Есть возможность загрузить другую сборку с другим именем файла, но вполне возможны проблемы. Во всяком случае проблемы должны быть в случае если плагин подписывается на какие-то события из AutoCAD .NET API. Возможен конфликт обработчиков событий.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выгрузка Net сборок своего плагина
« Ответ #2 : 27-03-2020, 17:03:53 »
Эта задача нужна для того чтобы обеспечить "горячую" замену обновлений приложения.
У меня это реализовано логичней. При включении компьютера идёт синхронизация приложений с сервера. В этот момент само-собой AutoCAD еще не запущен и проблем с обновлением не возникает. Кроме того на рабочем столе Windows есть ярлык, который запускает эту синхронизацию. Если возникает необходимость выполнить синхронизацию без перезагрузки, то пользователь выходит из AutoCAD и запускает синхронизацию, а затем снова запускает AutoCAD. Мне кажется, что это самая простая и логичная схема.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 534
  • Карма: 117
Re: Выгрузка Net сборок своего плагина
« Ответ #3 : 27-03-2020, 18:44:11 »
Мне кажется, что это самая простая и логичная схема.
Реализовал аналогичную схему. Только ярлыка перезагрузки нет, т.е. если надо обновить достаточно попросить пользователя перезагрузить компьютер. Есть возможность запустить скрипт синхронизации, но это не для пользователей, чтоб не усложнять.

Есть еще пара схем, которые достаточно просты, хоть и не универсальны, но достойны рассмотрения.
2. Если пользователей не много, например 1-2 отдела 15-30 человек, занимающих пару комнат, можно все настройки поместить в сетевой папке.
+ очень просто сделать
- сложно обновлять, нужно всех попросить закрыть автокады, либо обновлять папку вечером или в субботу.

3. У Алексея Кулика выложен код, автообновления пользовательских меню, если я правильно понял, то он и папку с программами так обновляет.
Если пользователи сидят распределено, то вполне себе рабочая схема. При старте автокада проверяется папка, заменяются файлы, затем перезагрузка меню при необходимости и загрузка плагинов.
+ весь код синхронизации можно написать на Lisp и поместить в mnl файл.
- Если папка с программами разрастется, то автокад будет долго стартовать.

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выгрузка Net сборок своего плагина
« Ответ #4 : 27-03-2020, 19:44:05 »
Только ярлыка перезагрузки нет, т.е. если надо обновить достаточно попросить пользователя перезагрузить компьютер. Есть возможность запустить скрипт синхронизации, но это не для пользователей, чтоб не усложнять.
У меня это не ярлык перезагрузки, а ярлык синхронизации (exe-файл, который ярлыком запускается и сравнив эталонный каталог на сервере и каталог у пользователя, выполняет обновление). Считаю, что специально перезагружать компьютер - это слишком большая роскошь.
« Последнее редактирование: 27-03-2020, 21:45:27 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 534
  • Карма: 117
Re: Выгрузка Net сборок своего плагина
« Ответ #5 : 27-03-2020, 22:02:25 »
У меня это не ярлык перезагрузки, я ярлык синхронизации (exe-файл, который ярлыком запускается и сравнив эталонный каталог на сервере и каталог у пользователя, выполняет обновление). Считаю, что специально перезагружать компьютер - это слишком большая роскошь.
насчет ярлыка для перезагрузки оговорился, имел ввиду синхронизации.
А про синхронизацию, можно подробнее? Хочу понять сценарий, при котором пользователям нужна такая возможность.
По моему опыту синхронизации раз в день, при загрузке достаточно. Когда я что-то добавляю/ изменяю то обычно сообщаю пользователям на следующий день. Очень редко, при тестировании изменений, возникает потребность, с одним-двумя проектировщиками, остальные получают обновления после перезагрузки.

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выгрузка Net сборок своего плагина
« Ответ #6 : 27-03-2020, 22:08:51 »
Очень редко, при тестировании изменений, возникает потребность, с одним-двумя проектировщиками, остальные получают обновления после перезагрузки.
У меня обычно аналогично. И соответственно они получают обновления практически моментально без перезагрузки. Часто обновление заключается не только в обновлении/добавлении arx/dll/lsp, но и cui(x) и каких-то dwg-файлов (блоков). Остальным, кому это сейчас не нужно, получат обновление после перезагрузки.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение