如何更改Team Foundation Build下MSBuild使用的生成目录?

时间:2020-03-06 14:27:13  来源:igfitidea点击:

尝试使用Team Foundation Build构建应用程序时出现以下错误:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1682,9): error MSB3554: Cannot write to the output file "obj\Release\Company.Redacted.BlahBlah.Localization.Subsystems.
  Startup_Shutdown_Processing.StartupShutdownProcessingMessages.de.resources". The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

我的项目在开发机器上可以很好地构建,因为源只有两个文件夹,但是TF Build似乎使用了一个很深的目录,导致它中断。如何更改使用的文件夹?

编辑:我检查存储在源代码控制我的构建的.proj文件,发现以下情况:

<!--  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>

如果存储在数据库中,该如何更改?

编辑:找到以下博客文章,这可能使我指向解决方案。现在,我只需要弄清楚如何在Build Agent中更改设置。 http://blogs.msdn.com/jpricket/archive/2007/04/30/build-type-builddirectorypath-build-agent-working-directory.aspx

目前我的工作目录是"$(TEMP)\ $(BuildDefinitionPath)",但现在我不知道是什么通配符都可以指定不同的文件夹中。

解决方案

我们必须从源代码管理资源管理器中检出构建脚本文件,并弄脏肘部以替换路径。

我们需要编辑Build Agent的构建工作目录,以使乞求路径更小一些。要编辑构建代理,请右键单击"构建"节点,然后选择"管理构建代理..."。

我个人使用诸如c:\ bw \ $(BuildDefinitionId)之类的东西。 $(BuildDefinitionId)转换为构建定义的ID(因此名称为:-),这意味着我们将获得以c:\ bw \ 36之类的东西而不是c:\ Documents and Settings \ tfsbuild \ Local开头的构建路径Settings \ Temp \ BuildDefinitionName

祝你好运,

马丁