2011-08-01 22 views
2

現在、コンポーネントを持たないコンポーネントのインストーラを作成しています(たとえば、SynEditエディタライブラリ)これにより、私は設計とランタイムパッケージを私が理解したものよりも良く理解することができました。インストーラの作成時にデザインタイムパッケージ内からDelphiランタイムパッケージを正しく定義する必要がある方法

私は、最もクリーンなデプロイメントを確保したいので、多くのユニットがランタイムパッケージに入ってくることを理解しています。しかし、設計時パッケージにはランタイムパッケージが必要なことがよくありますが、これが問題になっています。通常は、ランタイムパッケージプロジェクト(xxx-RXE)とそれに続くデザイン時パッケージプロジェクト(xxx-DXE)を持つプロジェクトグループを作成します。ビルドをすべてやっても大丈夫です。私はBPL、DCP、DCUの両方のパッケージを自分自身のライブラリパスとinstall the design-time package into the IDE using the registryに配置します。次に、ライブラリパスが環境設定に追加されます。私がDelphiを開くと(これはD7とXEに当てはまります)、パッケージXXXX-DXEを読み込めません。ライブラリパッケージxxx-RXE.bplが見つかりません。 xxx-RXE.dcpを 'requires'から削除し、これをユニットに直接置き換えるように設計時のパッケージを変更して、すべてうまくいきます。

私はDelphiのフォルダに何かをぶつけないようにしようとしています。私のプロジェクト構造はこのようなものです(XEのみが表示され、D7は似ています)。パッケージは出力単位bplとdcpを ".. \ Library \ Delphi15"に設定され、すべてのパッケージには ".. \ Source"という検索パスが与えられ、デザインタイムパッケージには ".. \ Library \ Delphi15 "(必要なランタイムパッケージを見つけるため)。

c:\Program Files\xxx\Library\Delphi15 

は、(すべてのBPLの、DCPの、DCUのが含まれています:上記のフォルダの

\Root 
    \Packages 
    xxx.groupproj 
    xxx-RXE.dpk 
    xxx-DXE.dpk 
    \Library 
    \Delphi15 
     (output of all dcus, dcp's, bpl's etc. Manually added *.res, *.inc and *.dfm's).  
    \Source 
    (The original project source files as used by the packages). 

なしはDelphi(デルファイ)で使用されていない、私は私のインストーラは、次の展開フォルダを作成するまでのDelphi IDEで何かをいけません等、それはまた、環境ライブラリパスに入れられたパスです)。

私は、すべてのファイルがそのフォルダ内のパスに含まれていれば、そのファイルを見ることができないのはなぜですか?

ありがとうございました。

答えて

3

「パッケージXXXX-DXE、ライブラリパッケージxxx-RXE.bplが見つかりません」と読み込むと、不良メモリが発生しました。通常、DCP(および/またはBPL?)を含むパスがWindows環境変数PATHに含まれていない場合、このエラーが発生します。

インストールされたパッケージが別のパッケージを参照すると、この参照されたパッケージの通常の「Windowsライブラリ検索動作」が(Delphiの起動時に)起動します。 この時点では、デルファイパス設定は有効ではありません。したがって、あなたのインストーラはPATH環境変数も変更する必要があります。

+0

良い提案、ありがとう。 –

+0

それはそれを解決しました、ありがとう。 –

+0

あなたは大歓迎です:) –

2

私はDCPがDelphiのDCPフォルダになければならないと確信しています。 Delphi 2010とWindows 7のマシンでは、C:\Users\Public\Documents\Rad Studio\7.0\Dcpにあります。

このパスは、という値のHKCU\Software\Codegear\BDS\7.0\Libraryにあります。もちろん、それは$(BDSCOMMONDIR)\Dcpとしてそこにあるので、文字列を拡張する必要があります。

また、Delphiのデフォルトの場所にランタイムBPLを置くこともできます。これは(私の場合)C:\Users\Public\Documents\Rad Studio\7.0\Dcpです。

+0

私はそれを試してみます、ありがとうナット。 –

2

"library package xxx-RXE.bpl not found"が誤解を招く可能性があります。私は実際にはLoadPackageが何らかの理由で失敗したと信じています。これは、Windowsパスに存在しない依存パッケージが原因で発生している可能性があります。

関連する問題