2012-02-17 19 views
8

Estoy buscando compilar mi proyecto Delphi 2010 usando MSBuild, pero algo no está bien, simplemente no pude hacer que MSBuild compilara mi proyecto.Automatice la compilación del proyecto Delphi 2010 con MSBuild

me trataron esta línea de comandos:

"C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild.exe" "C: \ MyProject \ Myapp.dproj"/t: Liberación

y esto:

"C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild.exe" "C: \ MyProject \ Myapp.dproj"/t: Configuración = Release/t: Release

¡Pero MSBuild no reconocerá mi configuración de compilación!

También cambié [rsvars.bat] pero no funcionó!

@SET BDS=C:\Program Files (x86)\Embarcadero\RAD Studio\7.0 
@SET BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\7.0 
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v4.0.30319 
@SET FrameworkVersion=v4.0.30319 
@SET FrameworkSDKDir= 
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;%PATH% 
@SET LANGDIR=EN 

El error es MSBuild:

C:\MyProject\Myapp.dproj : error MSB4057: The target "Release" does 
not exist in the project. 

Cualquier ayuda para llegar a construir mi aplicación con MSBuild sería muy apreciada.

(sí, soy plenamente consciente de herramientas como FinalBuilder, sólo quiero aprender a hacer esto con MSBuild)

Gracias!

+0

Gracias usted, OK (1) Cambié de nuevo rsvars.bat (pero aún no puedo compilar :(), (2) DOS no reconoce msbuild sin la ruta completa – TheDude

+3

Si ejecuta el archivo rsvars.bat antes de ejecutar msbuild las ventanas consola (que no es lo mismo que DOS, como una nota al margen) reconocerá un pla en llamada a 'msbuild.exe' ya que rsvars.bat modifica la variable PATH (ver línea 6). También puede editar permanentemente las variables de entorno, de esa manera no tiene que ejecutar rsvars.bat cada vez. – Chris

+0

2. Ciertamente reconoce msbuild, si ejecuta rsvars.bat antes de llamar a msbuild. Lee los documentos. Ellos explican todo esto. –

Respuesta

12

Necesita cambiar los parámetros. El parámetro de destino (/ t) le dice a MSBuild qué objetivo crear. Esto puede ser 'Hacer', 'Limpiar' o 'Construir' (o una combinación de esos, separarlos con ';' en este caso).

El parámetro de propiedad (/ p) reenvía las propiedades al compilador real. Puede especificar, por ejemplo, la configuración mediante /p:config=

Así que si usted quiere limpiar y luego construir un proyecto utilizando la configuración de liberación, especificar los parametros de esta manera:

msbuild.exe "/t:Clean;Build" "/p:config=Release" Myapp.dproj 
+0

Gracias, Chris, pero ahora estoy obteniendo esto: – TheDude

+0

Microsoft (R) Build Engine Versión 4.0.30319.1 [Microsoft .NET Framework, Versión 4.0.30319.1] Fecha de creación 17/02/2012 20:37:11 PM. Proyecto "D: \ _ Software \ test.dproj" en el nodo 1 (Limpiar; Generar objetivo (s)) . D: \ _ Software \ test.dproj: error MSB4057: el objetivo "Limpiar" no existe en el proyecto t. Hecho Proyecto de construcción "D: \ _ Software \ test.dproj" (Limpiar; Objetivo de compilación (s)) - FALLADO. Build FAILED. "D: \ _ Software \ test.dproj" (Limpiar; Generar destino) (1) -> D: \ _ Software \ test.dproj: error MSB4057: El objetivo "Limpiar" no existe en el proyecto . 0 Advertencia (es) 1 Error (s) – TheDude

+1

¿Ejecutó rsvars antes de emitir el comando msbuild? –

0

Cambio /p:Configuration=Release a /p:config=Release

Cuestiones relacionadas