2009-11-30 14 views
9

RAD Studioコマンドプロンプトを起動し、MSBuildはどのようにDelphiの検索パスを見つけるのですか?

msbuild /t:Rebuild 

をプロジェクトディレクトリに実行すると、msbuildはすべてのパス設定を含むdcc32を呼び出すコマンドライン全体を表示します。

MSBuildはレジストリに格納されているIDE設定($(DCC_UnitSearchPath)などのプレースホルダを含む)に基づいて検索パスを検索するためにどのような魔法を使用しますか?

RAD StudioコマンドプロンプトはMSBuild用の.Net環境だけを設定するため、背後で何か他のことがありますか?

答えて

15

をEnvOptions.projを含むCodeGear.Common.Targetsを含むCodeGear.Delphi.Targetsが含まれています。 EnvOptions.projはIDEによって更新され、レジストリからのパスが格納されます。

+0

$(APPDATA)\ CodeGear \ $(BDSAppDataBaseDir)\ 6.0 \ EnvOptions.proj – mjn

+3

としてC:\ DocumentsとSettings \ \を見て、EnvOptions.proj(またはディレクトリ) XPの場合はApplication Data \ CodeGear \ BDS \ 6.0、VistaまたはWindows 7の場合はC:¥Users¥¥AppData¥Roaming¥CodeGear¥BDS¥6.0です。 –

+0

ありがとうございました!最初の検索で隠しフォルダが見つかりませんでした:P – mjn

1

プロジェクトのインクルージョンを歩いたことがありますか?計算されている場所(つまり、どのタスク) Reflectorを使用してリバースエンジニアリングすることをお勧めします.MSBuildはちょうど[非常にばかげた]テキストであることを覚えておいてください。

または、詳細なロギングを有効にして、どのタスクがそのように計算するかを調べることができます。

それともREGKEYSが

など精査されているかを監視するためにprocmonのを使用することができそれとも、バリーが一緒に来るのを待って、決定的な答え与えることができる:あなたのプロジェクトファイルを調べるとP

関連する問題