Есть ли какие то нормальные способы сразу пересобирать свое приложение под несколько версий AutoCAD?Скачай MGDDBG - в его составе solution и проекты под различные версии AutoCAD. Всё собирается одной кнопкой Build Solution.
MgdDbg отсюда?Нееее... Там уже почти труп )
То есть один раз нажал и сразу под все версии пере собирается?Есть ли какие то нормальные способы сразу пересобирать свое приложение под несколько версий AutoCAD?Скачай MGDDBG - в его составе solution и проекты под различные версии AutoCAD. Всё собирается одной кнопкой Build Solution.
То есть один раз нажал и сразу под все версии пере собирается?Именно. И одни и те же исходники. Посмотри то, что я тебе сказал.
MgdDbg отсюда?Позор! За 6 лет пребывания на форуме ты еще не запомнил где и что брать? ;)
Именно. И одни и те же исходники. Посмотри то, что я тебе сказал.а как это сделано не могу понять?
Для каждого Project в Solution свои настройки на сборки AutoCAD и версии .NET Framework. И кроме того еще костанты (вида AC20XX) для ветвления в зависимости от версии AutoCAD:Именно. И одни и те же исходники. Посмотри то, что я тебе сказал.а как это сделано не могу понять?
а как это сделано не могу понять?
Спасибо я видел Ваши ролики, еще когда только начинал за что тоже большое спасибо, у Вас вставляются в новый проект все файлы как ссылки, а в MgdDbg не понял как создавались проекты, так как нет для каждого проекта отдельной папки.а как это сделано не могу понять?
Для каждого Project в Solution свои настройки на сборки AutoCAD и версии .NET Framework. И кроме того еще костанты (вида AC20XX) для ветвления в зависимости от версии AutoCAD:а до этого как сделано как созданы проекты без папок?
а до этого как сделано как созданы проекты без папок?Да как угодно. Можно создать пустой проект и добавить его в решение. Можно просто скопировать готовый проект, добавить его в решение и настроить. Ну и конечно не забыть добавить *.cs-файлы из общего каталога.
Но при создании проекта все равно же создается папка и как тут добавлены *.cs файлы во все проекты, вроде не как ссылкой вставлены?а до этого как сделано как созданы проекты без папок?Да как угодно. Можно создать пустой проект и добавить его в решение. Можно просто скопировать готовый проект, добавить его в решение и настроить. Ну и конечно не забыть добавить *.cs-файлы из общего каталога.
(https://live.staticflickr.com/65535/50662375152_064f5cef3a_o.jpg)Но при создании проекта все равно же создается папка и как тут добавлены *.cs файлы во все проекты, вроде не как ссылкой вставлены?а до этого как сделано как созданы проекты без папок?Да как угодно. Можно создать пустой проект и добавить его в решение. Можно просто скопировать готовый проект, добавить его в решение и настроить. Ну и конечно не забыть добавить *.cs-файлы из общего каталога.
ссылкой и вставленыу ссылок разве иконки такие?
А ссылки вы похоже вставлять не научились. Там у кнопки Добавить в форме выбора существующего файла, есть выпадающий список и в нем "Добавить как связь". А иначе копия файла в проект вставляется.Я так и вставил обратите внимание на иконки
Все, что я компилирую для AutoCAD 2013 прекрасно работает во всех последующих версиях. Зачем разводить огород, там где он не нужен? API не измениняется (ну почти).Я тоже так считал. Но потом столкнулся неоднократно с ситуациями, когда из-за старых ссылок ломалась работа приложения в новых версиях. Причём, в одном случае, почему-то только у некоторых пользователей. Я тогда кучу времени потратил на поиск причины. Мне пришлось посидеть плотно за ПК пользователя. Я устанавливал и переустанавливал фреймворки, полностью переустановил все продукты Autodesk, драйверы и т.п. Одна и та же ОС, одна и та же версия AutoCAD, одна и та же версия моего приложения, один и тот же чертёж. Даже ПК идентичны, т.к. из одной партии закупки! Но у одного пользователя всё ок, а у другого - не работает как надо! Причём, никаких ошибок - фаталов, исключений и тп. Просто тупо не работает! И только когда я пересобрал приложение с подходящими для версии AutoCAD Dll, всё починилось. У меня в приложении, конечно, много чего специфического используется - Overrule, P/Invoke, COM(dynamic) и т.п. Допускаю, что если бы было более простое приложение, то с такими проблемами я бы не столкнулся. Но, после этого, я стал пересобирать для каждой версии с её ссылочными DLL. Мне несложно настроить проекты, зато проблем подобного рода у пользователей уже точно не будет.
вот, например, из последнегоОтличный пример, того, что изменения в API отлавливаются сразу и легко. В сообщении об ошибке четко написано какой именно метод изменился и как именно. И так же легко лечатся через reflection или все-таки добавлением одной сборки (но не десятков же).
Отличный пример, того, что изменения в API отлавливаются сразу и легко.Эта ошибка проявляется только во время выполнения в определённых версиях AutoCAD. Разве это "сразу и легко"?
Так-то и под каждую локализацию и под каждую Windows по хорошему надо собирать отдельный проект.Если требуется адаптировать приложение на разные языки, то это делается с помощью локализации ресурсов. Не надо отдельный проект делать.
Моя-то мысль о том, что надо трезво оценить свои затраты на поддержку пачки проектов вместо одного. Если делать один плагин (чтоб продать и забыть) - то вполне можно вместо одного проекта сделать 10. И совсем другое дело если проектов и так 66 и их надо будет развивать, обновлять, пересобирать, перепаковывать. Тут переход на 666 проектов внесет такие издержки, что уж лучше раз в 3 года поотлавливать один тяжелый глюк.Так кто же спорит, делай как удобнее. Это же твои проекты ) Главное, делать это осознанно, понимая все возможные последствия.