8

DelphiXE3でのコンポーネントのインストールは悪夢です。

  • まず、ソースファイルをに追加する必要があります

    ツール->オプション->ライブラリ

  • 次に、通常のパッケージを見つけてコンパイルする必要があります

  • 最後に、デザインタイムパッケージを見つけてインストールする必要があります。

これは非常に面倒でエラーが発生しやすいです。コンポーネントをインストールするためのより良い方法はありますか?

Delphiパッケージインストーラーを見つけました。残念ながら、DelphiXE3以降はサポートされていません。

自分でインストールするパッケージ(Inno Setupなど)を生成する類似のものがあると聞きましたが、そのexeようなものは見つかりません。

4

4 に答える 4

10

いいえ。上記の手順が必要です。

まず、にファイルパスを追加するTools->Options->Delphi Options->Library Pathと、コンパイラはファイルをコンパイルする場所を知ることができます。(実際には必須ではありません。.dpkファイルが.pasファイルと同じフォルダーにあり、すべての.pasファイル名がincludes.dpkのセクションにリストされていることを確認することで、この手順を省略できます。 .pasファイルは別の場所にあります。.dpk内の相対パス(たとえば)を使用するか、.pasファイルの場所を。)MyComponents in '..\Source\MyComponents.pas'に追加する必要があります。Project->Options->Delphi Compiler->Search Path

次のステップ(「通常のパッケージ」を見つける)は、ランタイムパッケージをビルドすることです。デザイン時パッケージ(次のステップ)では、フォームデザイナで機能するために、そのパッケージに含まれるコードが必要になるため、これは必須です。サードパーティのコンポーネントを使用していて、そのためのランタイムパッケージを配布したい場合は、ランタイムパッケージを使用してアプリケーションを構築する場合にも必要です。

設計時コードは設計時にのみ使用できるため、個別の設計時パッケージ(3番目のステップ)が必要です。アプリケーションがランタイムパッケージでビルドされていて、ステップ2のパッケージビルドがその1つである場合、アプリケーションで配布できるものは何もありません。

これは、Delphi 3頃からコンポーネントをインストールする方法であり、デザインタイムコードを独自のパッケージに分離する要件は、Delphi 5でアドバイスされ、Delphi 6で適用され始めました(IDEデザインタイムサポートの多くを個別のパッケージを所有し、それらのソースの配布を停止しました)。

ベンダーがビルド前のデザインタイムパッケージとランタイムパッケージを提供するか、上記のすべての手順を実行するインストーラーを提供しない限り、他のオプションは実際にはありません。(ほとんどの場合はそうではありません。)ただし、Delphiのバージョンを更新する場合でも、上記の手順を実行する必要があります。

于 2012-12-09T19:47:01.250 に答える
2

組み込みのコンポーネントインストーラーはどうですか?これはDelphiXE、XE2、およびXE3の一部であり、説明はここにあります(私が作成しました)。コンポーネントをC++Builderにインストールすることもできます。既存のパッケージまたは新しいパッケージにインストールして、作成することができます。

于 2012-12-10T12:18:08.993 に答える
1

コンポーネントをインストールする最良の方法は、ビルドマネージャー(FinalBuilderなど)を使用して、必要なパスを設定し、DPKファイルをビルドし、コンポーネントを「インストール」するマネージャープロジェクトファイルに各コンポーネントを追加することです。レジストリエントリを作成することによるIDE。そうすれば、完全なテスト済みのDelphi開発環境を確実にセットアップまたは修復できる文書化された手順が得られます。コンポーネントが更新およびテストされたら、プロジェクトを再実行するだけです。また、既存のプロジェクトを微調整して、新しいDelphiバージョンを処理することも非常に簡単です。

ベンダー提供のインストーラーの大きな欠点は、私が見たすべてのインストーラーが、更新時に以前のバージョンを単に上書きすることです。テストでアップグレードの問題が明らかになった場合に備えて、以前のコンポーネントソースバージョンをアーカイブして比較できるように、自分でインストールを制御することを好みます。マイナーなコンポーネントのアップグレードによってアプリケーションが突然動作を停止するまで、「ワンクリックインストール」は問題ないように聞こえます。

于 2012-12-10T01:06:19.813 に答える
1

LazyDelphiBuilder 」をご覧ください。これは、一度に多くのコンポーネントのビルド/インストールを簡素化するために作成されました。パッケージの依存関係を自動的に解決します。自由に使用できます。 古いチュートリアルへのリンク

于 2012-12-21T15:07:36.127 に答える