Como faço para alterar o diretório de compilação que MSBuild usa sob Team Foundation Build?
Pergunta
Estou recebendo o seguinte erro ao tentar construir meu aplicativo usando Team Foundation Build:
C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets (1682,9): Erro MSB3554: Não é possível gravar o arquivo de saída "obj \ Release \ Company.Redacted.BlahBlah.Localization .Subsystems. Startup_Shutdown_Processing.StartupShutdownProcessingMessages.de.resources". O caminho especificado, nome do arquivo, ou ambos são muito longos. O nome completo do arquivo deve ter menos de 260 caracteres, eo nome do diretório deve ter menos de 248 caracteres.
Meu projeto cria muito bem em minha máquina de desenvolvimento como a fonte é de apenas duas pastas profundas, mas TF Desenvolver parece usar um diretório muito profunda que está causando isso para quebrar. Como faço para alterar as pastas que são usados?
Editar: Eu verifiquei o arquivo proj para minha compilação que é armazenada no controle de origem e encontrou o seguinte:
<!-- 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>
Se este é armazenado no banco de dados como faço para mudar isso?
Editar: Encontrado o seguinte post que pode ser me apontando torward a solução. Agora eu só preciso descobrir como alterar a configuração na construção Agent. http: / /blogs.msdn.com/jpricket/archive/2007/04/30/build-type-builddirectorypath-build-agent-working-directory.aspx
Atualmente o meu diretório de trabalho é "$ (Temp) \ $ (BuildDefinitionPath)", mas agora eu não sei o que estão disponíveis para especificar uma pasta diferente wildcards.
Solução
Você precisa editar o diretório de trabalho de construção de sua construção Agent para que o caminho pedindo é um pouco menor. Para editar o agente de compilação, clique direito sobre o "constrói" nó e selecione "Gerenciar agentes de compilação ..."
Eu, pessoalmente usar algo como c: \ pc \ $ (BuildDefinitionId). $ (BuildDefinitionId) traduz o id do definição de compilação (daí o nome :-)), o que significa que você começa um caminho de construção começando com algo como c: \ pc \ 36 em vez de c: \ Documents and Settings \ TFSBuild \ Local Settings \ Temp \ BuildDefinitionName
Boa sorte,
Martin.
Outras dicas
Você tem que fazer o checkout do arquivo script de construção, a partir do gerenciador de controle de origem, e obter o seu cotovelos sujos substituindo o caminho.