Pregunta

Estoy intentando usar CI en una sucursal de uno de mis proyectos TFS. MSBuild solo falla cuando intento usar una rama. Apunto el mismo Build al '' tronco '' proyecto funciona bien.

El error que recibo del registro de compilación:

  

Tarea " Etiqueta "

     

Label TeamFoundationServerUrl = " http: // TFSServer: 8080 / "   BuildUri = " vstfs: /// Build / Build / 6763 "   Nombre = "Test_SF_20090619.1"   Alcance = " $ / MyProject " Recursivo = Verdadero   Comentarios = " Etiqueta creada por Team Build "   Versión = " BuildServer3D143_66 "   Niño = " Reemplazar " Archivos = " $ / " C: \ Programa   Archivos \ MSBuild \ Microsoft \ VisualStudio \ TeamBuild \ Microsoft.TeamFoundation.Build.targets (812,5,812,5):

     

error: no se encontraron elementos coincidentes en $ /   en tu espacio de trabajo.

     

Terminada la ejecución de la tarea " Etiqueta " -- HA FALLADO.

     

Terminado el objetivo de construcción '' CoreLabel '' en proyecto   " TFSBuild.proj " - ERROR.

Creo que este error se debe a la falta de copia de los archivos fuente en el servidor Build.

Obtener extracto de la tarea del registro de compilación:

  

Tarea " Obtener "

     

Obtener TeamFoundationServerUrl = " http: // TFSServer: 8080 / "   BuildUri = " vstfs: /// Build / Build / 6768 "   Fuerza = sobrescritura verdadera = falsa   PopulateOutput = False Preview = False   Recursivo = Versión verdadera = " C204806 "   Espacio de trabajo = " BuildServer3D143_66 "

     

Terminada la ejecución de la tarea " Obtener " ;.

Esta es una compilación completa. Debería haber alrededor de mil archivos listados en el GET.

Información general

  • TFS 2008
  • Visual Studio 2008
  • Servidor de compilación establecido (estado ejecutando compilaciones para el último año)
  • El proyecto que se ramifica es un ASP.NET web stie (2.0 Framework).

Parámetros de compilación completa

  • / p: SkipClean = false
  • / p: SkipInitializeWorkspace = false
  • / p: ForceGet = true
  • / p: IncrementalBuild = false
  • / p: IncrementalGet = false

nota: Sé que IncrementalBuild es redundante pero solo quería estar seguro.

Preguntas:

  • ¿Hay restricciones en las compilaciones de una rama?
  • ¿Alguna idea de por qué MSBuild no puede extraer archivos del espacio de trabajo de la sucursal?
¿Fue útil?

Solución 2

Tuve dos problemas en este caso.

Primero, la seguridad de la sucursal no otorgó derechos a la cuenta del servicio de compilación. Había restringido la sucursal a los ingenieros de lanzamiento y líderes tecnológicos de nuestro equipo. La cuenta del servicio de compilación también necesitaba acceso. Lo que me aconsejaron fue que mientras buscaba en Internet me topé con un publicación por alguien que cometió el mismo error.

El segundo problema fue un poco más complicado. Mientras limpiaba mi archivo de proyecto de compilación, eliminé la siguiente sección.

<SolutionToBuild Include="$(BuildProjectFolderPath)/../../_stage/MyProject/MySolution.sln">
        <Targets></Targets>
        <Properties></Properties>
</SolutionToBuild>

Que funcionó bien en proyectos que ya había construido al menos una vez, pero si se trataba de una nueva compilación, que no hubiera copiado los archivos de origen en el servidor de compilación, entonces no habría archivos y la compilación fallaría.

Algunos de ustedes pueden preguntarse si mis otras compilaciones estaban funcionando, después de todo, no tendrían archivos de compilación antiguos. Sí, pero tenía objetivos definidos que hacían todo el trabajo que realmente me importaba. Entonces, SolutionToBuild es un poco frívolo.

Otros consejos

Si es para CI, lo más probable es que estés haciendo una obtención incremental. TFS solo se molestará en obtener los archivos que cree que han cambiado desde su última obtención, p. si elimina algún archivo de su servidor, seguirá pensando que tiene esos archivos, por lo que no los volverá a recuperar. En este caso, deberá ejecutar la compilación una vez con las propiedades incrementales desactivadas para que se obtenga una fuente completa. Puede hacer esto anulando las propiedades en el cuadro de la línea de comando de MSBuild en el cuadro de diálogo Crear cola con:

/p:IncrementalGet=false;ForceGet=true

Otra posibilidad que me viene a la mente es que la rama confunde la tarea Etiqueta. Es posible que su espacio de trabajo esté configurado incorrectamente, así que compruebe que está asignando todo lo que necesita.

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