Дмитрий Кузан дата публикации 08-10-2003 13:51 Миграция Delphi со всеми настройками на другую машину
Доброе время суток, уважаемые коллеги. Поводом написания данной статьи явился случай. Я разработчик - основное время я разрабатываю свои проекты на работе, а также часто по вечерам дорабатываю их дома. В процессе работы я использую много компонент сторонних разработчиков, не говоря о своих. И естественно, в палитре компонентов их набралась уже не одна сотня. В ходе работы некоторые компоненты меняются на новые версии, некоторые удаляются по причине их неэффективности или появления лучших аналогов. Все эти изменения и исправления приходится проводить как на работе, так и дома, дабы синхронизировать среду разработки, то есть, если я установил два своих модифицируемых компонента на работе, то и дома мне надо переустановить их тоже. Когда изменения небольшие, можно это делать руками. И теперь собственно то, что побудило меня написать данную статью - мой знакомый программист попросил установить все компоненты, которые используются в моей программе, для ведения совместного проекта.
Когда я посмотрел на всю палитру компонент, собранную за все время, мне стало немного не по себе - установка вручную всех этих компонент на машину знакомого заняло бы, наверное, целые сутки. И тогда у меня и появилась идея перенести компоненты на другую машину, не устанавливая заново, грубо говоря, клонировать палитру IDE.
Встал вопрос — как это сделать. Тут я начал разбираться и вот что обнаружил :
- Delphi (у меня 6 версия) хранит все свои настройки в реестре, что впрочем естественно. Для сохранения настроек используется следующая ветвь в реестре - HKEY_CURRENT_USER\Software\Borland\Delphi\6.0
- Все компоненты у меня были установлены в одну папку $(DELPHI)\Lib\Components ("D:\Program Files\Borland\Delphi6\Lib\Components")
- Сгенерированные BPL данных компонент лежали в папке "D:\Program Files\Borland\Delphi6\Projects\Bpl" и копии в System32
В принципе, для начала неплохо. Теперь мне предстояло перенести все это знакомому на машину - но тут появились тонкости: система у меня стояла на диске D: у него на C:.
Итак, мой алгоритм переноса:
- Запускаем regedit на машине источнике и сохраняем выбранную ветвь реестра HKEY_CURRENT_USER\Software\Borland\Delphi\6.0 файл reg. ., пусть он будет называться Nastr.reg
- На второй машине устанавливаю Delphi на диск C:
- Копирую со своей машины содержимое папки "D:\Program Files\Borland\Delphi6\Lib\Components" в папку "C:\Program Files\Borland\Delphi6\Lib\Components"
- Копирую со своей машины содержимое папки "D:\Program Files\Borland\Delphi6\Projects\Bpl\" в папку "С:\Program Files\Borland\Delphi6\Projects\Bpl\".
- Копирую BPL из system32 в system32 второй машины.
- Запускаем regedit на второй машине и сохраняем для страховки ветвь реестра HKEY_CURRENT_USER\Software\Borland\Delphi\6.0 файл reg., пусть он будет называться Arhiv.reg
- В файле Nastr.reg произвожу замену в тексте "D:\\" на "С:\\"
- На второй машине запускаю файл Nastr.reg для внесения изменений в реестр.
- Запускаем DELPHI. И что мы видим - ошибка. Delphi ругается на отсутствие лицензии. Вот те на, возвращаю все настройки реестра по умолчанию из файла Arhiv.reg - Delphi нормально запускается. Значит все дело в настройках реестра. Теперь нам надо так произвести обновления реестра, чтоб новые ключи, отвечающие за палитру компонент и настройки путей к библиотекам, стали новыми, а ключи, отвечающие за лицензирование, остались старыми. Для этого надо в Arhiv.reg убрать ключи, отвечающие за палитру компонент и настройки путей к библиотекам. После некоторых исследований обнаруживается, что в файле Arhiv.reg нужно полностью удалить след. ОСНОВНЫЕ ключи отвечающие за палитру компонент и настройки путей к библиотекам :
a. [HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\History Lists\hIPackgeSearchPath]
b. [HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\History Lists\hlLibraryPath]
c. [HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\Known Packages]
d. [HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\Known IDE Packages]
e. [HKEY_CURRENT_USER\Software\Borland\Delphi\6.0\Library]
- На второй машине ЗАНОВО запускаю файл Nastr.reg для внесения изменений в реестр.
- После этого запускаю откорректированный Arhiv.reg для внесения настроек по умолчанию в ключи отвечающие за лицензирование и прочее
- Запускаю DELPHI и вуаля.… Все загрузилось нормально и все компоненты, установленные на первой машине появились и на второй
Осталось проверить работают ли они - делаю маленькую демку куда встраиваю нестандартные компоненты (вроде TMSTreeView) запускаю и получаю работающее приложение.
Вот в принципе и все. Следуя здравому смыслу, перенос Delphi на другую машину не представляется особо сложным процессом, главное знать, что переносить.
До встречи.
Дмитрий Кузан
[Установка компонентов] [Настройка среды (IDE)]
Обсуждение материала [ 01-08-2008 00:53 ] 8 сообщений |