Минимальный набор файлов Delphi 2010 для перемещения в репозиторий SVN для компиляции - PullRequest
3 голосов
/ 15 июня 2010

Мы используем Subversion для SCC. В нашем репозитории имеется большая часть нашей среды сборки, так что мы можем проверить данную версию и перестроить ее достаточно близко к тому, что использовалось в то время. Теперь у нас есть следующее:

  • Двоичные файлы InnoSetup
  • Сторонние компоненты
  • VCL (включая Indy)
  • Наш Источник (конечно)
  • Файлы проекта Finalbuilder

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

Спасибо

Ответы [ 4 ]

3 голосов
/ 15 июня 2010

Хорошо, я думаю, у меня это работает.Мне удалось скомпилировать наше приложение в гостевой системе VMware, на которой не было установлено ни одного из наших инструментов для разработчиков (RAD Studio, EurekaLog и т. Д.).В основном у меня есть папка компилятора с этими файлами:

Оказывается, вам нужно всего несколько файлов.В основном эти файлы:

02/05/2008  05:13 PM            89,088 BorDebug.dll  
11/02/2009  06:02 PM            57,344 Borland.Build.Tasks.Common.dll  
11/02/2009  06:02 PM           147,456 Borland.Build.Tasks.Delphi.dll  
11/02/2009  06:02 PM            49,152 Borland.Build.Tasks.Shared.dll  
11/02/2009  06:02 PM            20,480 Borland.Globalization.dll  
08/19/2009  05:00 PM            22,370 CodeGear.Common.Targets  
08/19/2009  05:00 PM            32,928 CodeGear.Delphi.Targets  
11/02/2009  06:02 PM         1,328,128 DCC32.EXE  
02/25/2010  08:17 AM           979,456 ecc32.exe  
11/02/2009  06:02 PM           314,368 lnkdfm140.dll  
02/25/2010  08:11 AM            40,960 Process.exe  
08/19/2009  05:00 PM            75,264 rlink32.dll  
06/15/2010  08:41 AM               185 rsvars.bat  

Может быть, я мог бы выхватить еще несколько этих файлов.У нас также есть папка компонентов, в которой есть все встроенные файлы VCL (в основном папки lib и Indy10) и наши сторонние компоненты.В Delphi я установил путь к библиотеке пусто - этот шаг является ключевым.Затем я поместил этот путь к библиотеке в конкретные параметры проекта.Мы использовали переменные окружения, чтобы указать, где находятся встроенные и сторонние файлы.Эти переменные среды устанавливаются в RAD Studio, а затем могут быть установлены с помощью командной строки при выполнении компиляции релиза.Итак, у нас есть BAT-файл, подобный следующему:

SET BDS=C:\_Releases\Compiler
SET COREFILES=C:\_Components\D2010
SET COMPONENTS=C:\_Components
SET LANGDIR=EN

Путь к нашей библиотеке выглядит примерно так:

$(COREFILES)\lib;$(COREFILES)\Indy10;$(COMPONENTS)\EurekaLog;$(COMPONENTS)\Jcl\source\common;$(COMPONENTS)\Jcl\source\windows

Теперь в нашей первичной сессии VMware, которая простоMSBuild и необработанные файлы, описанные выше, я могу назвать этими командами:

msbuild project.dproj -t:rebuild /p:config=Release  
ecc32 --el_alter_exe"project.dproj"

, которая создает наше приложение.Конечно, мы просто используем личность Delphi32, которая упрощает вещи, но для нас, я думаю, это будет работать фантастически.

2 голосов
/ 15 июня 2010

Мы собираемся сами приступить к настройке Delphi 2010.Ранее (и в настоящее время) у нас была именно эта настройка для наших автоматических сборок FinalBuilder с Delphi 2006.

В этом случае все, что мы сделали, - это взяли копию содержимого папки установки самой Delphi 2006 (Program Files).\ Borland \ BDS \ 4.0).Это все, Bin, Lib ... много (то есть, точно так же, как у нас на наших машинах разработчиков).

Единственное различие между машинами разработчиков и машиной сборки заключается в том, что Delphi на самом деле не установлен наэтой машины, но это не влияет на возможность запуска компилятора командной строки (что мы и используем в наших автоматических сборках).

Единственное, что нам нужно было сделать, - это вручную создать некоторые записи реестра, чтобычто FinalBuilder обнаружит и распознает присутствие Delphi 2006 на компьютере и предоставит необходимые пути к библиотекам и т. д. Это было сделано путем экспорта необходимых ключей / значений с компьютера разработчика и импорта в реестр компьютера сборки (результирующий .regфайл также является частью нашей конфигурации сборки в репозитории.)

Я не могу сказать, что такое набор файлов минимум , потому что мы не занимались сохранением дискового пространства и просто занимали все "простов случае".Возможно, вам удастся сэкономить несколько МБ, обрезав немного жира, но по сравнению с потреблением диска в автоматизированной среде сборки (исходный код, промежуточные продукты, продукты компиляции и т. Д.) Я подозреваю, что экономия будет незначительной и не будет стоить хлопот.

2 голосов
/ 15 июня 2010

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

1 голос
/ 15 июня 2010

Лицензия Delphi была обновлена ​​несколько версий назад, чтобы явно разрешить установку компилятора командной строки на сборочных ПК для целей автоматизированной сборки, поэтому я согласен с Мэйсоном, что было бы неплохо установить отдельную машину(виртуальный - это хорошо) для выполнения сборок.

Я могу успешно выполнять сборки командной строки Delphi после копирования следующей древовидной структуры (папки и все содержащиеся в ней файлы и подпапки) с ПК, на котором я установил Delphi (2007 г.).в моем случае) в отдельную коробку сборки.Кажется, нет необходимости вводить какие-либо ключи / значения реестра и т. Д .;он просто отлично работает, как и у меня.

C:\Program Files
  \CodeGear
    \RAD Studio
      \5.0
        \bin\*.*
        \lib\*.*
        \source\*.*
  \Common Files
    \RAD Studio
      \Shared Assemblies
        \5.0\*.*

Я ожидаю, что Delphi 2009/2010 будет таким же или похожим.

У меня есть вышеуказанная древовидная структура в нашем SVN-репозитории вместе свсе наши источники, поэтому, если я настраиваю новый сборочный ПК, большая часть моей первоначальной настройки включает в себя простую проверку SVN в нужном месте на новом сборочном ПК.

...