私はDelphi EcoSystem全体に非常に慣れていません。Rad Studio XE2 を使用しています。
非常に単純なケースがあるとしましょう。
プロジェクト A、B、および C。C は B に依存しています。B は A に依存しています。
これは、'Project Dependencies' IDE GUI を使用して依存関係をセットアップした方法でもあります。
C は、実行可能ファイルを生成するプロジェクトです。「現在のプロジェクト」として設定されます。
プロジェクト B のファイルを変更して F5 (実行) を押すと、プロジェクト B と C のみがコンパイルされると予想されます。
しかし、プロジェクトAは常に再構築されます!! これは、プロジェクト C でソース ファイルを変更した場合にも当てはまります。
私は何か間違ったことをしていますか?もしそうなら、それが何であるかについてのアイデアはありますか?
それとも、これが IDE の仕組みなのですか?
顧客は大規模なレガシー コードベースを所有しており、XE2 を使用しています。現時点では、再コンパイルが必要な最下位のプロジェクトを右クリックし、[Build From Here...] を選択して、依存プロジェクトの再コンパイルを手動で処理しています。
XE2 の「プロジェクトの依存関係」機能を発見したとき、これがこの問題の解決策になると思いました。
* 編集 *
Ok。私の質問/懸念が実際には伝わっていないことがわかったので、これをもう少し詳しく説明しようと思います。
多くの BPL プロジェクト (私が理解している限り、DLL を出力する) と 1 つの実行可能プロジェクト (C.exe) で構成されるグループ プロジェクトがあります。
C.exe は、A.BPL および B.BPL を含むすべての BPL プロジェクトを参照します。ここで、BPL プロジェクトのいずれかのコードを変更して「実行」を実行すると、C.exe が起動しますが、BPL プロジェクトが再コンパイルされていないため、行った変更は有効になりません。これは実際に私の痛みのポイントです。これまでに使用したすべての IDE は、依存する dll も再コンパイルします。もちろん、プロジェクトが適切にセットアップされていることを前提としています。そして今、私の質問に。プロジェクトが正しく設定されていないだけなのか、それとも IDE の制限なのかはわかりません。変更した BPL プロジェクトを右クリックして [ここからコンパイル] を選択し、[実行] を実行すると、変更が有効になります。ただし、依存関係の再コンパイルを気にせずに実行可能ファイルを実行することに慣れている場合、これを行う必要があるのは非常に面倒です。
上記のように、IDE の「依存関係」機能を使用してみました。ただし、動作は非常に奇妙です(私にとって)。ソースコードが変更されていない場合でも、依存関係を再コンパイルします。