Pregunta

Resumen: puedo compilar un proyecto RAD Studio 2009 usando MSBuild en un servidor de compilación usando el símbolo del sistema RAD Studio, pero no con un archivo por lotes. Sin embargo, este mismo archivo por lotes funciona correctamente en mi estación de trabajo. En el servidor, el error devuelto es: MSB4057.

Estoy aprendiendo a usar MSBuild con RAD Studio y estoy tratando de hacer que las cosas de MSBuild funcionen. He generado un programa por lotes que establecerá las variables de entorno de manera adecuada y luego compilará el proyecto por mí. Esto funciona bien en mi estación de trabajo.

Sin embargo, cuando muevo todo a un servidor de compilación no funciona.

Creo que estoy cerca de la respuesta de por qué sucede esto. Puedo hacer que mi proyecto se compile desde el Símbolo del sistema de RAD Studio escribiendo esto en el servidor:

msbuild C:\MyProject\Group\Project.groupproj

Este es mi archivo de comando que estoy tratando de ejecutar:

@SET BDS=C:\RS\
@SET BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\6.0
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%%FrameworkVersion%;%FrameworkSDKDir%;%PATH%

msbuild C:\MyProject\Group\Project.groupproj /t:Clean;Build /p:"Config=Release" 

Esta es la salida del símbolo del sistema:

C:\>msbuild C:\MyProject\Group\Project.groupproj /t:Clean;Build /p:"Config
=Release"
Microsoft (R) Build Engine Version 2.0.50727.1434
[Microsoft .NET Framework, Version 2.0.50727.1434]
Copyright (C) Microsoft Corporation 2005. All rights reserved.

Build started 12/2/2008 12:24:26 PM.
__________________________________________________
Project "C:\MyProject\Group\Project.groupproj" (Clean;Build target(s)):

Target Clean:
    Target Project1:Clean:
        __________________________________________________
        Project "C:\MyProject\Group\Project.groupproj" is building "C:\MyProject\Project1\Project1.cbproj" (Clean target(s)):

        C:\MyProject\Project1\Project1.cbproj : error MSB4057: The target "Clean" does not exist in the project.

        Done building project "Project1.cbproj" -- FAILED.

Build FAILED.
C:\MyProject\Project1\Project1.cbproj : error MSB4057: The target "Clean" does not
 exist in the project.
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.01
¿Fue útil?

Solución

Lo descubrí. Después de rastrear páginas de resultados de búsqueda de Google tratando de encontrar una manera de hacer que mi servidor de compilación automática procese esto, miré las rutas en el programa por lotes y noté que era diferente a la ruta de instalación.

@SET BDS=C:\RS\

debería haber sido

@SET BDS=C:\RS\6.0\

Lección para aprender: MSBUILD puede devolver el error MSB4057 cuando no puede resolver la ruta BDS.

Nota al margen: Si esta solución simple no funciona para usted, asegúrese de tener las instrucciones de rastreo adecuadas en sus archivos de proyecto. vea este artículo en msdn

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top