Delphi の名前によるユニットの「重複」、コンポーネントによる参照、コンパイルの問題
-
23-08-2019 - |
質問
私たちはさまざまなベンダーによるいくつかのコンポーネント パッケージを使用していますが、そのうちの 2 つは両方ともディレクトリ構造内で利用可能な「regexp.pas」ユニットを持っています。
ここでの問題は、コンパイル順序に関係なく、ユニットの 1 つが他のさまざまなユニットの間違ったバージョンでコンパイルされたユニットについて文句を言うことです。
これを正しく処理する方法はありますか?
解決
- そのユニットのバージョンが 1 つだけであることを確認する必要があります
- (両方のベンダーの) すべての dcu を削除して、すべてのソースの再コンパイルを強制します。
- 2 つのベンダーのパッケージを完全にアンインストールします (それぞれのすべての痕跡がどこからでも削除されていることを確認してください)
- 一度に 1 つずつ再コンパイルしてインストールします。
他のヒント
どの2つのユニットは、ユニットは静的にリンクまたは動的にパッケージを介して連結されているかどうか、任意の完全にリンクされ、Delphiの実行可能ファイルをロードして、同じ名前を持つことはできません。あなたは結論づけとして、あなたはどちらか一方の名前を変更する必要があります。
あなたはこの回避策を使用することができます。
すでに話したとおり、あなたはIDEに両方のベンダのパッケージをロードすることはできませんの一緒にの。
ただし、一度にそれらを1つずつ必要がある場合は、を二つの異なるIDEプロファイルを起動することができます。のの使用「 - R」コマンドラインスイッチ、与えカスタム名を各プロファイルに。 その後、あなたは最初のプロファイルを使用してデルファイを起動し、2つの最初のインストールパッケージの「衝突」、IDEを閉じ、第二プロファイルにデルファイを実行して、他のパッケージをインストールすることができます。
各プロファイルのショートカットを作成し、あなたが特定のプロジェクトをmantainする必要があるパッケージをロードするプロファイルを選択するデルファイを実行します。
よろしく、 〜/ | / |アルコ
。所属していません StackOverflow