2011年9月21日

Delphi/C++Builder XE2におけるパッケージ作成時の注意点

Delphi/C++Builder XE2でパッケージを作るときに注意すると幸せになれるかもしれないけれどもあんまり参考にならないポイントを3つほど。
  • 出力ディレクトリ
    "プロジェクトオプション"の"Delphiコンパイラ"ページで"ユニットの出力ディレクトリ"を変更してもコンパイル時にデフォルトの出力ディレクトリ([WIN32][WIN64]\[DEBUG][RELEASE])が作成されてしまいます。これは.dprojファイル(xml形式)のDCC_ExeOutputにデフォルトのDCC_DcuOutputの内容が残っているためで、これをDCC_DcuOutputと同じ内容に書き換えることで回避することができます。
  • デザインパッケージ
    設計時パッケージでコンポーネントのプロパティエディタなどを作成した場合、デザインパッケージ"DesignIDE"が必要になりますが、単純にRequiresに追加してしまうとx64にはDesignIDEが存在しないためにx64版のコンパイルでエラーになってしまいます。この場合は"プロジェクトオプション"のターゲットで"すべての構成 - 32ビット Windows プラットフォーム"を選択し、"Delphiコンパイラ"の"コンパイル"ページの"コンパイラに渡す追加オプション"に"-LUDesignIDE"を追加することで回避することができます。
  • バージョン情報
    プロジェクトオプションでバージョン情報を追加してもターゲット構成(WIN32/WIN64/OS X/Debug/Release)毎にデフォルトの指定が残ってしまい、パッケージに正しいバージョン情報をつけることができません(もちろん全てのプロファイルに同じ内容を設定すればよいのですが)。これは.dprojファイルの構成毎の設定のところに不適切なVerInfo_LocaleとVerInfo_Keysの値が入ってしまっているためで、ベース構成以外のVerInfo_LocaleとVerInfo_Keysの要素を削除することで回避することができます。

ちなみに.dprojファイルのバージョン情報に関する設定の格納方法がXE2で変更になったようで、従来は"\Project\ProjectExtensions\BorlandProject\Delphi.Personality"のVersionInfoとVersionInfoKeysにバージョン情報の設定が存在しますが、XE2ではこの位置にある設定を無視して"\Project\PropertyGroup"のベース構成(CONDITION="'$(Base)'!=''")のVerInfo_*を使用するようです。XE2でバージョン情報関係の不具合が報告されているようですが、これらの仕様変更と関係があるような気がします(次回に続く)。

0 件のコメント: