¿Cómo cambio el directorio de compilación que utiliza MSBuild en Team Foundation Build?
Pregunta
Recibo el siguiente error al intentar crear mi aplicación usando Team Foundation Build:
C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1682,9):error MSB3554:No se puede escribir en el archivo de salida "obj elease\Company.Redacted.BlahBlah.Localization.Subsystems.Startup_Shutdown_Processing.StartupShutdownProcessingMessages.de.resources".La ruta especificada, el nombre del archivo o ambos son demasiado largos.El nombre de archivo completo debe tener menos de 260 caracteres y el nombre del directorio debe tener menos de 248 caracteres.
Mi proyecto se construye bien en mi máquina de desarrollo ya que la fuente tiene solo dos carpetas de profundidad, pero TF Build parece usar un directorio muy profundo que está causando que se rompa.¿Cómo cambio las carpetas que se utilizan?
Editar: Revisé el archivo .proj de mi compilación que está almacenado en el control de fuente y encontré lo siguiente:
<!-- BUILD DIRECTORY
This property is included only for backwards compatibility. The build directory used for a build
definition is now stored in the database, as the BuildDirectory property of the definition's
DefaultBuildAgent. For compatibility with V1 clients, keep this property in sync with the value
in the database.
-->
<BuildDirectoryPath>UNKNOWN</BuildDirectoryPath>
Si esto está almacenado en la base de datos, ¿cómo lo cambio?
Editar: Encontré la siguiente publicación de blog que puede indicarme la solución.Ahora sólo necesito descubrir cómo cambiar la configuración en Build Agent. http://blogs.msdn.com/jpricket/archive/2007/04/30/build-type-builddirectorypath-build-agent-working-directory.aspx
Actualmente mi directorio de trabajo es "$(Temp)\$(BuildDefinitionPath)" pero ahora no sé qué comodines están disponibles para especificar una carpeta diferente.
Solución
Debe editar el directorio de trabajo de compilación de su Build Agent para que la ruta de inicio sea un poco más pequeña.Para editar el agente de compilación, haga clic derecho en el nodo "Compilaciones" y seleccione "Administrar agentes de compilación..."
Yo personalmente uso algo como c:\bw\$(BuildDefinitionId).$(BuildDefinitionId) se traduce en la identificación de la definición de compilación (de ahí el nombre :-)), lo que significa que obtienes una ruta de compilación que comienza con algo como c:\bw\36 en lugar de c:\Documents and Settings fsbuild\Local Configuración emp\BuildDefinitionName
Buena suerte,
Martín.
Otros consejos
tienes que verificar el archivo de script de compilación, desde el explorador de control de fuente, y ensuciarte los codos reemplazando la ruta.