2010-06-15 18 views
7

Tengo una solución .NET con un assemlby en C++ administrado Dirigiendo .NET 3.5 creado con VS2010. El comando:Cómo construir un proyecto VS2010 C++ en un BuildServer

%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.sln 

compila la solución en mi máquina dev.

En mi buildserver me sale este error:

Build FAILED.

"F:\CruiseControl.NET\Projects\MyProject\MyProject.sln" (default target) (1) -> "F:\CruiseControl.NET\Projects\MyProject\MyProject\MyProject.csproj" (default target) (2) -> "F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj" (default target) (3) ->
F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj(23,3): error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

0 Warning(s) 
1 Error(s) 

En mi máquina dev el archivo reclamado

"C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props"

existe. En mi servidor de compilación no.

Cuando intento copiar estos archivos (y todos los demás en el mismo directorio) ocurrieron otros errores. Entonces este es el camino equivocado.

EDIT: otros errores significa: Cuando copio el archivo "Microsoft.Cpp.Default.props" en el servidor de compilación, MSBuild reclama otros archivos. Eso me muestra que hacer una copia de los archivos que faltan no es lo que el entorno de construcción espera. Estoy buscando un paquete de MSI/lo que sea que pueda instalar en mi servidor de compilación y se compilará cualquier proyecto de C++. Instalar el SDK no fue el truco. O hice algo mal durante la instalación de SDK. O no es posible compilar Soluciones administradas de C++ VS2010 solo con el SDK.

Creo que "otros errores" no tiene nada que ver con mi problema. Mi problema es: "Cómo configuro mi entorno de compilación correctamente". /EDIT

Lo que he hecho hasta ahora:

  • He instalado la última Win7 SDK (http://blogs.msdn.com/b/windowssdk/archive/2010/05/25/released-windows-sdk-for-windows-7-and-net-framework-4.aspx)
  • me estoy apuntando .NET 3.5
  • He intentado jugar con la Plataforma conjunto de herramientas de propiedad - pero sólo estaba jugando
  • En mi solución no es una manejado C++ Asamblea (mi problema)
  • estoy utilizando MSBuild 4.0 porque los nuevos archivos del proyecto VS2010 no se pueden compilar con MSBuild 3.5
  • Estoy usando CC.NET. la compilación falla en CC.NET y en la línea de comandos. Por lo tanto, no debería ser un problema de CC.NET.

¿Hay algunos consejos y trucos de cómo configurar mi proyecto para compilar correctamente en mi máquina dev con VS2010 y en mi servidor de compilación? ¿Hay algo más para instalar (excepto VS2010)?

Gracias, Arthur

+0

Pregunta: ¿Estás bloqueado en CC.Net, o tienes la capacidad de ver la actualización a otra cosa? – Caladain

+2

No creo que cambiar a otra Tecnología de integración continua cambiará cualquier cosa. Como dice Arthur, la construcción falla al usar MSBuild normal. Esto parece ser un problema con .Net 4.0 más fuertemente vinculado al SDK 7.0A de lo que debería ser. –

+0

Sí, eso es cierto. la compilación falla en la línea de comandos con MSBuild. CC.NET aún no está involucrado. – Arthur

Respuesta

4

Por ahora, la instalación de VS 2010 es su única opción segura. El SDK de Windows se actualizará para habilitar su escenario, pero no tengo una fecha de lanzamiento específica. Hasta entonces, deberá instalar VS 2010 con las herramientas C++ para construir su solución 2010 con proyectos C++. Asegúrese de informarle al equipo de C++ sobre la insatisfacción con esta situación a través de su team blog y/o MSDN Forum.

Incluso después de instalar VS 2010, puede necesitar invocar el archivo vcvars * .bat apropiado para configurar correctamente sus variables de entorno.

+0

Triste noticia. Si instalar SDK no funciona, tendré que instalar VS 2010 en mi máquina de compilación. Triste, pero obviamente cierto. – Arthur

+1

Después de mucho dolor, descubrí que 7.1 SDK instala la configuración necesaria * si * selecciona las opciones correctas durante la instalación y no intenta ser más listo :). Consulte la respuesta breve a http://stackoverflow.com/questions/4742325/how-to-build-a-vs2010-makefile-project-vcxproj-with-tfs-build-no-vs-2010/4768328#4768328 – BlueMonkMN

+0

Cómo es esta respuesta aceptable? El propósito de un servidor de compilación NO es tener que instalar Visual Studio ... @BlueMonkMN: ¿Está/estaba ejecutando una máquina con Windows 7 o una versión de servidor? – Brandon

1

¿Por qué no quieres instalar VS2010 en su servidor de compilación? Si se trata de licencias, tiene licencia por cabeza de desarrollador, no por instalación, así que estoy razonablemente seguro de que puede hacerlo sin comprar otra copia, o, en el peor de los casos, puede instalar la versión expresa que debe al menos instalar los bits de configuración que está faltante para que pueda usar el compilador SDK de la plataforma.

Si aún tiene problemas con msbuild, puede usar devenv.com /build, que replica exactamente el entorno de compilación VS.

+2

La instalación de VS2010 será mi última opción. – Arthur

+0

@Rup Instalar VS en un servidor de compilación es una idea terrible. Es exactamente lo contrario de lo que es un servidor de compilación: proporcionar un entorno limpio y similar al cliente (DLL existentes, etc.). Si cree que instalar VS en el servidor de compilación no es un problema, entonces también debe sugerir la instalación de VS en cada casilla de cliente. – mafu

+0

@mafutrct ¡Veo de dónde vienes, pero no hay razón para que tengas que alojar y probar la aplicación en tu servidor de compilación! Cuando escribí que nuestro entorno era un servidor de compilación para pruebas unitarias y algunas pruebas de integración, pero una implementación automática a otro servidor (que no tenía VS) para pruebas reales. – Rup

Cuestiones relacionadas