Загрузка пакетов Delphi Designtime на основе проекта

Yep, он существует :) Просто используйте

> names(LIST)
[1] "A" "B"

Очевидно, что имена первого элемента - это просто

> names(LIST)[1]
[1] "A"
11
задан Glenner003 14 October 2008 в 08:16
поделиться

3 ответа

В моем предыдущем задании я записал немного инструмента для помощи нам с пакетами управления версиями. Я действительно должен воссоздать тот инструмент в свое свободное время и сделать его доступным. Инструмент не было трудно записать, хотя, поэтому возможно, можно реализовать что-то как он сами.

В основном это работало как это:

  • Подверсия repo со всеми пакетами в подпапках. Каждая папка пакета в repo имела те же подпапки: Lib (для DCUs), Источник, Справка (в случае необходимости)
  • В корневой папке repo находится инструмент вместе с XML-файлом.
  • XML-файл указал всю необходимую информацию для каждого пакета: то, какая папка содержала DCUs, какая папка содержала источник, которые управляют, должно было быть выполнено для справки.
  • Инструмент читает в XML и дисплеях checklistbox всех доступных пакетов. Установленные пакеты (чтение из реестра BDS) отмечены проверенные.
  • Пользователь может сделать выбор который пакеты установить/удалить.
  • Инструмент, adds/removes необходимые ключи в реестре BDS. Это добавляет папку DCU/Lib в путь поиска IDE, это добавляет исходную папку к пути просмотра IDE, и это регистрирует команду справки в пользовательском эксперте IDE (Этот эксперт обеспечивает расширение меню справки по умолчанию для запуска справки для всех установленных пакетов),
  • Инструмент даже проверил бы на конфликты и зависимости между пакетами. Например, обе версии 3 и 4 Компонентов Повышения были доступны, который не мог оба быть активным одновременно. Проверка зависимостей была полезна для внутренних компонентов, которые произошли из TurboPower AsyncPro (партия внутренних компонентов полагалась на последовательную передачу через AsyncPro),

Возможное расширение должно было бы смочь сохранить/загрузить выбор пакетов и снабдить тот выбор каждым проектом, таким образом, у Вас могут быть только пакеты, загруженные, которые необходимы для конкретного проекта.

Я реализовал все это, когда компания перемещалась от Delphi 5/7 к Delphi 2007. Мы имели много проблем с управлением версиями пакета прежде и хотели некоторый способ присвоить версию всем различным пакетам.

Этот подход предложил некоторые хорошие преимущества:

  • Когда bugfixes должен был быть сделан, или новые версии сторонних пакетов были выпущены, один человек должен был передать изменения в подверсии. Все другие devs могли просто сделать обновление от подверсии и иметь последнюю версию без любых проблем.
  • Когда новые пакеты компонента были бы добавлены к среде, один человек должен был фиксировать все файлы, изменить список XML-пакета, и затем другой devs мог сделать обновление подверсии и выполнить инструмент для интеграции пакета легко.
  • Все третье лицо и пользовательские внутренние компоненты были теперь имеющими версию легко.
  • Включением DCUs (и другие двоичные файлы) в подверсии repo, мы удостоверились, что весь devs использовал ту же скомпилированную версию. Прежде чем было возможно, что различные компиляции использовали различные настройки, которые заставили некоторые компоненты вести себя по-другому.
  • Когда все другие devs наконец установили Delphi 2007, их пакеты были установкой меньше чем за 10 минут (большую часть времени потраченный на загрузку всего от подверсии repo; сам инструмент мог установить 20 пакетов меньше чем через 2 секунды). Прежде, с ручной установкой всех пакетов для Delphi5/7 могло потребоваться до 2 дней для устанавливания всего.

Это только использовалось для одних только некоторых внутренних компонентов, repo также включал некоторые большие пакеты компонента: Компоненты повышения, JCL/JVCL (Используя их установщик вместо инструмента, хотя), сетка DevExpress Quantum 3 и 4, TurboPower AsyncPro

8
ответ дан 3 December 2019 в 08:31
поделиться

Это не легко, также делают. Можно сделать это, хотя, с использованием пользовательского взлома реестра и определенным bds ярлыком на конфигурацию Вы интересуетесь:

Для использования просто создайте новый ярлык и измените командную строку для передачи, например,-rMyAlternateBDSReg. Затем после запуска, что однажды, reg запись создается и они могут настроить тот альтернативный реестр все, что они хотят, удаляя пакеты, и т.д., не волнуясь о том, чтобы портить установку по умолчанию.

От codegear

При установке конфигурации для каждого проекта можно затем запустить соответствующий ярлык для данного проекта. Это не автоматически, но это лучше, чем наличие всего там все время.

Хороший побочный эффект состоит в том, что время загрузки будет улучшено.

6
ответ дан 3 December 2019 в 08:31
поделиться

Мы помещаем источник для наших пакетов в управлении исходным кодом наряду с batchfile, который восстанавливает их. Если существует изменение в дереве для пакетов затем, мы восстанавливаем их. Это не обращается к устанавливающим новым пакетам, но существуют хиты реестра, которые могут заботиться об этом, таким образом, возможно, что мы могли включать .reg отрывки, возможно, для обработки этого.

0
ответ дан 3 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: