2009-11-30 4 views
9

Si je lance l'invite de commande RAD Studio et exécutezComment MSBuild trouve-t-il le chemin de recherche Delphi?

msbuild /t:Rebuild 

dans un répertoire de projet, msbuild montrera la ligne de commande complète pour appeler dcc32, y compris tous les paramètres de chemin.

Quel genre de magie ne MSBuild utiliser pour trouver les chemins de recherche, sur la base des paramètres IDE (stockés dans le Registre) et le fichier de projet (qui contient des espaces réservés comme $ (DCC_UnitSearchPath)?

La commande RAD Studio prompt ne définit que l'environnement .Net pour MSBuild, donc il y a quelque chose d'autre qui fonctionne dans les coulisses?

Répondre

15

Si vous examinez le fichier de projet, vous Je remarquerai qu'il inclut CodeGear.Delphi.Targets qui inclut CodeGear.Common.Targets qui à son tour inclut EnvOptions.proj. EnvOptions.proj est mis à jour par l'EDI pour contenir les chemins du registre.

+0

Désolé je ne peux pas trouver EnvOptions.proj (ou le répertoire), il est référencé comme $ (APPDATA) \ CodeGear \ $ (BDSAppDataBaseDir) \ 6.0 \ EnvOptions.proj – mjn

+3

Regardez dans C: \ Documents and Settings \ \ Application Data \ CodeGear \ BDS \ 6.0 si vous êtes sur XP, ou C: \ Users \ \ AppData \ Roaming \ CodeGear \ BDS \ 6.0 si vous êtes sur Vista ou Windows 7. –

+0

Merci! Ma première recherche n'incluait pas les dossiers cachés: P – mjn

1

Avez-vous avancé les inclusions du projet? Vous devriez être capable de deviner où il est calculé (c.-à-d. Rappelez-vous qu'un MSBuild est un texte [très farfelu]

Vous pouvez également activer la journalisation détaillée et découvrir quelle tâche la calcule de cette façon.

Ou vous pouvez utiliser procmon pour surveiller qui REGKEYS sont sondées, etc.

Ou vous pourriez attendre Barry à venir et donner une réponse définitive: P

Questions connexes