|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Создание инсталятора
Новосибирск
Регистрация: 22.12.2009
Сообщений: 29
|
||
Просмотров: 9679
|
|
||||
AutoCAD Регистрация: 26.07.2007
Москва
Сообщений: 1,064
|
Тема смачная, странно что никто не ответил.
Хотелось бы расширить тему. Добавить еще вопросы автообновления и интегрирования в интерфейс Акада (разных версий и профилей). Про автозагрузку можно почитать в справке ObjectARX Developer's Guide -> Demand Loading. Вот пример кода Creating demand-loading entries for .NET modules from outside of AutoCAD Надеюсь гуру подключаться и опишут концепцию приложения для AutoCAD. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Вот как я делаю инсталляторы для ruCAD на InnoSetup - принципиальные моменты:
1. Решить, какие привилегии нужны для запуска самого инсталлятора - только Администратор, или доверить Пользователю. От этого зависят дальнейшие действия. 2. Так как ставятся приложения для AutoCAD, инсталлятор должен проверить наличие всех AutoCAD допустимых для данного приложения версий и устанавливаться только если они есть. Пользователь должен выбрать один из AutoCAD. В InnoSetup это делается включением в проект специальной dll. 3. Копирование всех необходимых (отобранных компонентов) файлов куда положено. А не куда вздумается. Бинарные - в Program Files, что-то в AppData (All Users или %Username% в зависимости от стратегии установки). Заодно автоматически регистрируются COM. 4. Запись в реестр или INI всех необходимых настроек. Предпочитаю INI. 5. Создание специальной папки с настройками и компонентами AutoCAD для этого приложения. В своей пользовательской папке - не трогая никагого из Автокадов. В общем-то это обычные действия, кроме 2. Пользователь запускает не AutoCAD, а специальную программу-стартер. Здесь можно выполнить дополнительные настройки конкретного пользователя системы (их может быть несколько с разной специализацией), при необходимости сменить рабочий AutoCAD. Запуск AutoCAD осуществляется из стартера. Для "диких" пользователей возможно создание ярлыка с AutoCAD, но с заданным профилем. Стартер делает: 1. Проверяет наличие профиля ruCAD в выбранной версии AutoCAD и создает, если такого не было. 2. Включает в начало списка путей поиска выбранного AutoCAD два дополнительных каталога - к "нашим" файлам общим для всех версий (шрифты, линии и т.п) и к специфичным для конкретной версии (cui и т.п.) 3. Генерирует по шаблону файл acaddoc.lsp, который и будет автоматически загружаться с профилем ruCAD. В этом файле создаются все необходимые настройки, загружаются необходимые библиотеки. NET я не использую, но в acadoc.lsp можно включить всё, что угодно, в том числе какие-то дополнительные программы - только редактировать надо шаблон этого файла. |
|||
![]() |
|
||||
Предлагаю на всеобщее обозрение, отечественная разработка.
http://www.createinstall.ru (у меня стоит пробная 30 дневная full версия, тестирование провожу на ней) В архиве прилагается мини сборка совместная работа автора (Кривоногов А.Г) программы-инсталлятора со мной. Работает на х32(проверенно XP) и х64(проверенно 7), соответственно AutoCAD 2010 x32(AutoCAD 2006 x32) и AutoCAD 2010 x64, как швейцарские часы. Инсталляция развертывает Ваши установочные файлы в любую удобную для вас папку. Т.к мы с автором программы занимаемся созданием инсталляции совсем недавно, то я предложил следующее При установке, программа ищет в реестре ветку [HKEY_CLASSES_ROOT\3dsFile\DefaultIcon] по ней определяется путь к Автокаду далее инсталлятор сам определяет путь к файлу acadXXXX.lsp модифицирует его дабавлением строки вида (load " c:\\Program Files\\LT\\myLisp.LSP ") где c:\\Program Files\\LT\\ путь зависящий от места установки вашей программы, это все делается автоматически. И завершающее при деинсталяции программа сама удаляет все записи из реесстра, файлы, в том числе и модифицированную строку. У инсталлятора колоссальные возможности. Я думаю совместными усилиями можно качественный Российский продукт сделать популярным. Файл сборку распаковать на диск С в корень(все настроено) получится должно: c:\LF\DWG c:\LF\ODCL c:\LF\Plugins c:\LF\LF.ci Последний раз редактировалось sdv79, 06.06.2010 в 12:44. |
||||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Цитата:
Код:
Последний раз редактировалось Tonic, 16.06.2010 в 17:47. |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Так и есть. У меня нет возможности проверить работоспособность кода на них. Но если вы напишете, что ADT или MEP (и т.д.) ведут себя точно также, как и соответствующие им версии чистого AutoCAD, я введу такую проверку и для вертикальных решений 2007-2011.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Ведут. Проверено неоднократно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 12.07.2008
Сообщений: 211
|
ShaggyDoc, здравствуйте! Вопрос не совсем в тему, но все же: подскажите, пожалуйста, как в Inno-Setup при установке приложения считывать данные реестра, записывать их куда-то (лучше туда же, - в реестр), а при удалении приложения - восстанавливать исходные значения реестра?
__________________
Users are not stupid, they are busy. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Чтобы при деинсталляции удалялись значения имеются ключи uninsdeletekey, uninsdeletekeyifempty, uninsdeletevalue Есть и специальная секция сценария [UninstallDelete] - тут можно записать действия при удалении чего-то, не создававшегося при инсталляции. А вот чтобы прочитать что-то до инсталляции, надо в секции [code] написать свою функцию. Там надо писать на Pascal. Имеется множество доступных функций (в том числе для работы с реестром). Если встроенных функций вдруг не хватит, можно написать свои и поместить их в DLL. Есть и секция [UninstallRun] в которой можно предусмотреть запуск какого-то приложения при деинсталляции. Всё подробно в справке. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
А еще есть Inno Setup Knowledge Base Все равно свой код самостоятельно писать надо. |
|||
![]() |
|
||||
Регистрация: 12.07.2008
Сообщений: 211
|
я это все уже давно проштудировал. Не нашел я там такой функции чтоб возвращала значение ключа..... а компилить свои dll я еще не умею... я ведь не программист и не хочу им быть
![]() Не понимаю почему такую функцию не включили в пакет Inno ![]() из-за того что так и не нашел решение этой проблемы, надумал создать инсталлятор в WIX...
__________________
Users are not stupid, they are busy. Последний раз редактировалось acyxou, 21.06.2010 в 23:11. |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Есть, правда, один вопрос... при создании проекта в C# мастером можно выбрать поддержку MEP и Architecture. Зачем, если в них должно всё также работать, как в чистом AutoCAD? И почему только эти 2 программы, ведь есть и Electric, и Mechanic, и другие.
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Код:
Код:
Оберните этот код из примера своей функцией, например (самый примитивный вариант): Цитата:
{code:MyRegReadString}; В секции Code можно создавать свои константы и переменные. |
|||
![]() |
|
||||
Регистрация: 12.07.2008
Сообщений: 211
|
ShaggyDoc, вот теперь ОГРОМНОЕ спасибо!
![]() Я почему то думал, что данная функция сравнивает принимаемую строку со значением, находящимся в ключе реестра, и если они совпадают то true, если нет - false. А оказывается нет.... Еще раз спасибо! ![]() ЗЫ. Мои извинения за выпады в адрес Inno Setup ![]()
__________________
Users are not stupid, they are busy. Последний раз редактировалось acyxou, 22.06.2010 в 11:11. |
|||
![]() |
|
||||
Регистрация: 24.02.2009
Сообщений: 4
|
В Visual Studio можно создавать попутно с созданием приложения инсталляционный пакет (особенно если писать на С#, то наверняка в среде VS) и ничего не надо дополнительно.
Пока не получилось инсталлировать новую версию по-верху, но думаю, что там все можно. Что касается выбора приложения AutoCAD для загрузки, то пока этим рулю вручную при загрузке адаптаций cui, cuix c помощью команды НПИ. При загрузке меню .Cui проверяется автоматически наличие одноименного .mnl-файла, а в нем я проверяю версию AutoCAD и загружаю версию сборки приложений, прикрепленных к .cui, или выдаю сообщение об ошибке. Последний раз редактировалось Lidia.Antipina, 23.06.2010 в 08:46. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание диалоговых окон в AutoCAD | TwoZero | Программирование | 145 | 11.03.2015 18:15 |
Создание единого принципа работы в AutoCAD 2009, в отдельно взятой проектной фирме. | milamu | AutoCAD | 175 | 27.11.2009 15:38 |
Создание разных типов линий | Андрей77 | AutoCAD | 2 | 09.02.2009 01:03 |
Создание инсталятора с помощью NSIS | Oracul | Программирование | 2 | 25.01.2005 22:16 |
Одна из целей: Создание экспертных систем на базе AutoCAD. | Сергей Юрьевич | Программирование | 9 | 01.01.2005 15:17 |