2009-11-30 16 views
9

Si pongo en marcha el símbolo del sistema RAD Studio y corro¿Cómo encuentra MSBuild la ruta de búsqueda de Delphi?

msbuild /t:Rebuild 

en un directorio del proyecto, msbuild mostrará la línea de comandos completa para invocar dcc32, incluyendo todos los valores de ruta.

¿Qué tipo de magia hace uso de MSBuild para encontrar las rutas de búsqueda, basándose en la configuración IDE (almacenados en el registro) y el archivo de proyecto (que contiene marcadores de posición como $ (DCC_UnitSearchPath)?

El comando RAD Studio prompt solo establece el entorno .Net para MSBuild. Entonces, ¿hay algo más que funcione detrás de escena?

Respuesta

15

Si examina el archivo de proyecto, Notará que incluye CodeGear.Delphi.Targets que incluye CodeGear.Common.Targets que a su vez incluye EnvOptions.proj. EnvOptions.proj es actualizado por el IDE para contener las rutas del registro.

+0

Lo siento, no puedo encontrar EnvOptions.proj (o el directorio), se le hace referencia como $ (APPDATA) \ CodeGear \ $ (BDSAppDataBaseDir) \ 6.0 \ EnvOptions.proj – mjn

+3

vaya a C: \ Documents and Settings \ \ Datos de la aplicación \ CodeGear \ BDS \ 6.0 si está en XP, o C: \ Users \ \ AppData \ Roaming \ CodeGear \ BDS \ 6.0 si está en Vista o Windows 7. –

+0

¡Gracias! Mi primera búsqueda no incluyó carpetas ocultas: P – mjn

1

¿Has recorrido las inclusiones del proyecto? Deberías ser capaz de adivinar dónde se calcula (es decir, qué Tarea) y el uso de Reflector para realizar una ingeniería inversa. Recuerde que un MSBuild es solo un texto [muy raro]

O puede activar el registro detallado y descubrir qué Tarea lo calcula de esa manera.

O usted podría utilizar para controlar la cual procmon REGKEYS se sondearon etc.

O usted podría esperar a Barry a venir y dar una respuesta definitiva: P

Cuestiones relacionadas