2009-11-30 130 views
9

如果我啓動RAD Studio命令提示符並在項目目錄中運行MSBuild如何找到Delphi搜索路徑?

msbuild /t:Rebuild 

,的MSBuild將顯示完整的命令行來調用dcc32,包括所有的路徑設置。

哪一種魔力確實的MSBuild使用到搜索路徑的基礎上,IDE設置(存儲在註冊表中)和項目文件(其中包含像$佔位符(DCC_UnitSearchPath)?

的RAD Studio命令提示只設置了MSBuild的.Net環境,所以還有其他的東西在幕後工作嗎?

回答

15

如果檢查項目文件,你會注意到它包含CodeGear.Delphi.Targets,其中包含CodeGear.Common.Targets,其中又包含EnvOptions.proj。 EnvOptions.proj由IDE更新以包含來自注冊表的路徑。

+0

對不起,我無法找到EnvOptions.proj(或目錄),它是作爲參考$(APPDATA)\的CodeGear \ $(BDSAppDataBaseDir)\ 6.0 \ EnvOptions.proj – mjn 2009-11-30 17:32:41

+3

看在C:\ Documents和Settings \ \ Application Data \ CodeGear \ BDS \ 6.0,如果您使用的是XP或C:\ Users \ \ AppData \ Roaming \ CodeGear \ BDS \ 6.0(如果您使用的是Vista或Windows 7)。 – 2009-11-30 17:35:20

+0

謝謝!我的第一個搜索沒有包含隱藏文件夾:P – mjn 2009-11-30 17:50:46

1

你是否已經走過了這個項目的包含體?你應該能夠預測它被計算的位置(即,哪個任務)並使用反射器進行反向工程。請記住,MSBuild只是[非常古怪]文本。

或者您可以打開詳細的日誌記錄並發現哪個任務以這種方式計算它。

或者你可以使用procmon中要監視的REGKEYS被探測等

或者你可以等待巴里一起去,給一個明確的答案:P