Как автоматизировать сборку под разные версии AutoCAD

Автор Тема: Как автоматизировать сборку под разные версии AutoCAD  (Прочитано 12770 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 106
  • Карма: 3
Доброго времени суток. Пока что идея такая - написать консольное приложение, которое будет копировать проект, написанный для самой младшей версии AutoCAD и в каждой копии менять ссылки на библиотеки и версию net framework, потом все это дело компилировать и все dll  с соответствующими версии суффиксом собирать в одну папку. Есть ли какие то нормальные способы сразу пересобирать свое приложение под несколько версий AutoCAD?

Отмечено как Решение Павел55 06-12-2020, 14:01:03

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Есть ли какие то нормальные способы сразу пересобирать свое приложение под несколько версий AutoCAD?
Скачай MGDDBG - в его составе solution и проекты под различные версии AutoCAD. Всё собирается одной кнопкой Build Solution.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Кажется, самый правильный способ использовать Condition в msbuild - переключать фрейморк и ссылки в зависимости от выбранной конфигурации. Тут надо покурить msbuild  ;D
У меня нет необходимости это сейчас делать.
Но из нескольких вариантов, этот самый удобный кажется. Другой вариант, делать по проекту на каждую версию автокада.

MgdDbg отсюда?
https://github.com/ADN-DevTech/MgdDbg
Там под одну версию 2017.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
MgdDbg отсюда?
Нееее... Там уже почти труп )
Вот тут есть ссылки в шапке: https://adn-cis.org/forum/index.php?topic=7274.0

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

  • ADN OPEN
  • ***
  • Сообщений: 106
  • Карма: 3
Есть ли какие то нормальные способы сразу пересобирать свое приложение под несколько версий AutoCAD?
Скачай MGDDBG - в его составе solution и проекты под различные версии AutoCAD. Всё собирается одной кнопкой Build Solution.
То есть один раз нажал и сразу под все версии пере собирается?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
То есть один раз нажал и сразу под все версии пере собирается?
Именно. И одни и те же исходники. Посмотри то, что я тебе сказал.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
MgdDbg отсюда?
Позор! За 6 лет пребывания на форуме ты еще не запомнил где и что брать? ;)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
У меня есть. Я думал может новый проект появился  ;D

Оффлайн Yusuf

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Именно. И одни и те же исходники. Посмотри то, что я тебе сказал.
а как это сделано не могу понять?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Именно. И одни и те же исходники. Посмотри то, что я тебе сказал.
а как это сделано не могу понять?
Для каждого Project в Solution свои настройки на сборки AutoCAD и версии .NET Framework. И кроме того еще костанты (вида AC20XX) для ветвления в зависимости от версии AutoCAD:
Например:
Код - C# [Выбрать]
  1. #if !AC2018  && !AC2019 && !AC2021
  2.       Application.BeginQuit += new EventHandler(event_BeginQuit);
  3. #else
  4.       Application.BeginQuit += new BeginQuitEventHandler(event_BeginQuit);
  5. #endif

Или:
Код - C# [Выбрать]
  1. #if !AC2018 && !AC2019 && !AC2021
  2.       FileDependencyManager fileDepMgr = e.ObjToSnoop as FileDependencyManager;
  3.             if (fileDepMgr != null) {
  4.                 Stream(snoopCollector.Data(), fileDepMgr);
  5.                 return;
  6.             }
  7. #endif
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
а как это сделано не могу понять?

Оффлайн Yusuf

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
а как это сделано не могу понять?

Спасибо я видел Ваши ролики, еще когда только начинал за что тоже большое спасибо, у Вас вставляются в новый проект все файлы как ссылки, а в MgdDbg не понял как создавались проекты, так как нет для каждого проекта отдельной папки.
Для каждого Project в Solution свои настройки на сборки AutoCAD и версии .NET Framework. И кроме того еще костанты (вида AC20XX) для ветвления в зависимости от версии AutoCAD:
а до этого как сделано как созданы проекты без папок?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
а до этого как сделано как созданы проекты без папок?
Да как угодно. Можно создать пустой проект и добавить его в решение. Можно просто скопировать готовый проект, добавить его в решение и настроить. Ну и конечно не забыть добавить *.cs-файлы из общего каталога.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Yusuf

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
а до этого как сделано как созданы проекты без папок?
Да как угодно. Можно создать пустой проект и добавить его в решение. Можно просто скопировать готовый проект, добавить его в решение и настроить. Ну и конечно не забыть добавить *.cs-файлы из общего каталога.
Но при создании проекта все равно же создается папка и как тут добавлены *.cs файлы во все проекты, вроде не как ссылкой вставлены?