3

Delphi 2007 IDE には、明らかな理由もなく、ときどき、Delphi IDE が <DCC_DependencyCheckOutputName> ノードの絶対パスを相対パスに変更するという、ちょっと厄介な問題があります。

たとえば、プロジェクトを保存する前に、これは dproj ファイルに書き込まれました。

<DCC_DependencyCheckOutputName>D:\DcProgs\ProgUtils\ConvertToSmw\ConvertToSmw.exe</DCC_DependencyCheckOutputName>

Delphi 2007 IDEに保存すると、次のように変わります

<DCC_DependencyCheckOutputName>..\..\..\ProgUtils\ConvertToSmw\ConvertToSmw.exe</DCC_DependencyCheckOutputName>

私の質問は、デルファイがこれを行う理由と時期です。デルファイがこれを行うのを止める方法はありますか?

プロジェクトのナイトリー ビルドを作成し、ビルドが成功した後に upx を使用して実行可能ファイルをパックするカスタム ビルド スクリプトを作成したことがわかります。exe ファイルの場所を知るには、「DCC_DependencyCheckOutputName」ノードを使用しますが、upx は相対パスを好まないため、絶対パスが必要です。Delphiがこれを変更するのをやめるか、少なくともいつ、またはなぜこれが起こるかを知っているので、これを防ぐためにide内で何をすべきでないかがわかるといいでしょう。

何か案は ?

4

1 に答える 1

3

プロジェクトと参照ファイルが同じドライブにある場合、IDE はこれを行います。

Delphi は、相対パスを使用してプロジェクトと参照を作成することを推奨するため、ディレクトリ ツリー内を別の場所またはマシンに簡単に移動できます。

場合によっては、これが逆に発生することがあります (たとえば、Delphi のサンプル コードの一部を含めたい場合など)。

これを行う唯一の方法は、絶対パス名を付けたい部分がメイン プロジェクトとは異なるドライブ文字にあることを確認することです。

また、別の UNC パスに配置することでこれを強制できる可能性もあります (私はまだ試していません)。

于 2012-06-26T13:28:34.257 に答える