10

多くの異なるプロジェクトに取り組んでいるチームがあるとしましょう。各チーム メンバーは、開発サイクル中にさまざまなビジュアル/非ビジュアル コントロール/コンポーネントのセットを使用します。Delphi では各コンポーネントをコンパイルして IDE にグローバルにインストールする必要があるため、他のチーム メンバーが開始したプロジェクトで作業しているときにこの状況を管理するにはどうすればよいでしょうか?

バージョン管理からプロジェクトのソースをチェックアウトして、すぐにコンパイルできるようになれば素晴らしいと思います。このプロジェクトに必要なビジュアル コンポーネントまたは非ビジュアル コンポーネントはどうでもいいし、わからないこともありますが、それらはすべてプロジェクト ソースに含める必要があると思います。

メイン プロジェクト ファイルまたはディレクトリを読み取り、プロジェクトの読み込み時に必要なすべてのコンポーネントをコンパイル/インストールする (そしてプロジェクトを閉じるときにそれらをアンインストールする) ことができるツールがいくつかあるのではないでしょうか?

Delphi でこの問題をどのように処理しますか?

4

3 に答える 3

5

うちの会社も同じ悩みです。これを解決するには、必要なすべてのライブラリ パスを Delphi IDE に追加するよう全員に強制します。

全員のすべてのコンポーネント/SDK/フレームワークを含む追加のSDK/フレームワーク リポジトリを使用しています。私たちは単一のテキスト ファイルを保持し、すべてのライブラリとそのバージョン、インストール情報などをリストします。誰もが必要なライブラリをチェックするので、二重のライブラリや異なるバージョンはありません。

私たちは皆 Windows で作業しており、Delphi はそのパスと (おそらく) インストールされているコンポーネントの情報をレジストリに保持しているため、これらの情報を抽出しました。使用されている Delphi バージョンごとに、sdk リポジトリ トランク内に .reg ファイルを保存します。

したがって、誰かがフレームワークを変更すると、.reg ファイル内の全員の情報を更新してコミットします。

現在、誰かが開発マシンをセットアップしたい場合は、sdk をチェックアウトし、たとえば xe2.reg 情報をレジストリに追加してから、プロジェクトをチェックアウトして ... tada をチェックアウトします。コンパイル中。

「インストール済みコンポーネント」パッケージの抽出は試みていません。それは私たちのやることリストにあります。別の方法として、すべての sdk パッケージを一度にビルドおよびインストールするためのバッチ ファイルを保持することもできます。しかし、デルファイでコマンドライン経由でコンポーネントをインストールできるかどうかはわかりません。

JEDIインストーラーのようなものがいいでしょう。インストーラーは、インストールされている Delphi のバージョンを検出し、すべてを適切にビルドおよびインストールします。自由に設定できるバージョンがあればいいので、すべての SDK を追加 -> 各バージョンにインストール..完璧です。

于 2012-11-02T17:27:13.557 に答える
4

特定のプロジェクトをコンパイルしたい人は、最初にプロジェクトが使用しているコンポーネントをインストールする必要があります。プロジェクトにコンポーネントのソース コードを直接含め、DFM を使用する代わりにコードでコンポーネントをインスタンス化しない限り、これを回避することはできません。私の知る限り、プロジェクトごとにコンポーネントの (アンインストール) インストールを自動化する IDE ツールはありません。

于 2012-10-16T18:58:39.517 に答える
2

チームが使用するコンポーネントとライブラリを制限することは非常に賢明です。各メンバーが使用するコンポーネントを決定すると、最終的な実行可能ファイルまたはパッケージが大きくなり、ライブラリ間で非互換性が生じる可能性があります。

さらに、非常によく似たライブラリの購入と更新に余分な費用がかかる可能性があります。Delphi が更新されるたびに、ほとんどのライブラリから新しいライセンスを購入する必要があることに注意してください。

したがって、最善のアプローチは次のとおりです。

  • 各開発者がどのライブラリを使用しているかを尋ね、それぞれの真の必要性について話し合います。

  • 必要なライブラリをカタログ化し、最終的なコードをコンパイルするマシンにインストールします。

于 2012-10-16T20:09:10.670 に答える