4

SCC には Subversion を使用しています。リポジトリには大量のビルド環境があるため、特定のバージョンをチェックアウトして、その時点で使用されていたものにかなり近いバージョンを再構築できます。現在、次のものがあります。

  • InnoSetup バイナリ
  • サードパーティ コンポーネント
  • VCL(インディ含む)
  • 私たちのソース(もちろん)
  • Finalbuilder プロジェクト ファイル

不足している唯一のものは、Delphi 自体のバイナリです。リポジトリにコピーして実行できる最小限のファイル セットがあるかどうか疑問に思っています。

ありがとう

4

4 に答える 4

3

わかりました-私はこれが機能していると思います。開発者ツール (RAD Studio、EurekaLog など) がインストールされていない VMware ゲストで、アプリケーションをコンパイルすることができました。基本的に、これらのファイルを含む Compiler フォルダーがあります。

いくつかのファイルしか必要ないことがわかります。基本的にこれらのファイル:

2008/02/05 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  
2009/11/02 06:02 PM 20,480 Borland.Globalization.dll  
2009/08/19 05:00 PM 22,370 CodeGear.Common.Targets  
2009/08/19 05:00 PM 32,928 CodeGear.Delphi.Targets  
2009/11/02 06:02 PM 1,328,128 DCC32.EXE  
2010/02/25 08:17 AM 979,456 ecc32.exe  
2009/11/02 06:02 PM 314,368 lnkdfm140.dll  
2010/02/25 08:11 AM 40,960 Process.exe  
2009/08/19 05:00 PM 75,264 rlink32.dll  
2010/06/15 08:41 AM 185 rsvars.bat  

たぶん、これらのファイルをさらにいくつか切り出すこともできます。また、すべての組み込み VCL ファイル (基本的には lib および Indy10 フォルダー) とサードパーティ コンポーネントを含む components フォルダーもあります。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

これで、MSBuild と上記の生ファイルだけを含む未使用の VMware セッションで、次のコマンドを呼び出すことができます。

msbuild project.dproj -t:rebuild /p:config=リリース  
ecc32 --el_alter_exe"project.dproj"

これにより、アプリケーションが構築されます。確かに、物事を単純化する Delphi32 のパーソナリティを使用しているだけですが、私たちにとってこれはうまくいくと思います。

于 2010-06-15T14:55:15.307 に答える
2

簡単に複製できるビルド環境を作成したい場合は、SVN サーバーを介して何千もの個別のファイルを処理しようとするよりも、仮想マシンをセットアップしてネットワーク共有でイメージをホストする方がよいでしょう。

于 2010-06-15T01:03:15.360 に答える
2

私たちは、Delphi 2010 用にこれをセットアップしようとしています。Delphi 2006 を使用した FinalBuilder 自動ビルドは、以前(そして実際に現在)まさにこの設定になっています。

その場合、Delphi 2006 自体のインストール フォルダ (Program Files\Borland\BDS\4.0) の内容をコピーするだけで済みました。それがすべてです。Bin、Lib... ロット (つまり、開発マシンにあるものとまったく同じ)。

開発マシンとビルド マシンの唯一の違いは、Delphi が実際にはそのマシンにインストールされていないことですが、これはコマンド ライン コンパイラを実行する機能には影響しません (これは、自動ビルドで使用するものです)。

他にやらなければならなかったことは、FinalBuilder がマシン上の Delphi 2006 の存在を検出して認識し、必要なライブラリ パスなどを提供できるように、いくつかのレジストリ エントリを手動で作成することでした。開発マシンとビルド マシンのレジストリへのインポート (結果の .reg ファイルは、リポジトリ内のビルド構成の一部でもあります)。

ディスクスペースの節約には関心がなく、単に「念のため」すべてを取得したため、ファイルの最小セットが何であるかはわかりません。一部の脂肪を取り除くことで数 MB を節約できるかもしれませんが、自動化されたビルド環境 (ソース、中間、コンパイル製品など) のディスク消費と比較すると、節約はごくわずかであり、手間をかける価値はないと思います。

于 2010-06-15T01:40:15.457 に答える
1

Delphi ライセンスは数バージョン前に更新され、自動ビルドを行う目的でビルド PC にコマンド ライン コンパイラをインストールすることが明示的に許可されました。良い)ビルドを行うため。

Delphi (私の場合は 2007) をインストールした PC から別のビルド ボックスに次のツリー構造 (フォルダーと含まれるすべてのファイルとサブフォルダー) をコピーすると、Delphi コマンド ライン ビルドを正常に実行できます。レジストリ キー/値などを入力する必要はないようです。私にとってはそのままで問題なく動作します。

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

Delphi 2009/2010 は同じ/類似していると思います。

上記のツリー構造がすべてのソースとともに SVN リポジトリにあるため、新しいビルド PC をセットアップする場合、初期セットアップのほとんどは、新しいビルド PC の適切な場所に SVN チェックアウトを実行するだけです。

于 2010-06-15T01:31:53.247 に答える