TFS 2010 - 复制期间发生错误:路径太长

J. *_*orn 20 tfs tfsbuild tfs2010

我们有一个ASP.NET MVC项目,我们想在自动构建期间创建一个发布包.构建使用带有Arguments的未修改的默认模板/p:DeployOnBuild=True /p:CreatePackageOnPublish=True.

如果我直接向服务器执行WebDeploy,它工作正常(如果我将/p:CreatePackageOnPublish更改为false),但我更愿意创建一个可以在Lab构建期间部署的包.

错误消息如下所示:

TF270002:发生错误从复制文件 'C:\构建\ 19个\二进制' 到 '\ NAS \建立\删除\ MyProject的\ MyProject_Development.Test\20120209.1'.详细信息:指定的路径,文件名或两者都太长.完全限定的文件名必须少于260个字符,目录名必须少于248个字符.

问题的第一部分是在构建文件夹路径太长(274个字),但更改工作目录后$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath),以$(SystemDrive)\Builds\$(BuildDefinitionId)它的下跌到230个字符的路径最长,所以应该没问题.

问题现在似乎是drop文件夹中的路径,即使它的根路径本身不长\\nas\Build\Drop\MyProject,构建名称和构建数字格式也会快速增加MyProject_Development.Test\MyProject_Development.Test_20120208.1.之后,所有嵌套路径都会创建非常深的文件夹结构_PublishedWebsites\MyProject.Web_Package\Archive\Content\C_C\Builds\19\Sources\MyProject\Source\MyProject.Web\obj\Debug\Package\PackageTmp\Content\ui-lightness\Images\ui-bg_diagonals-thick_18_b81900_40x40.png.

那么有什么方法可以解决这个问题吗?我缩短了从构建数字格式$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)$(Date:yyyyMMdd)$(Rev:.r)保存几个字符,但还不够.我想我们可以稍微缩短构建名称,但它会破坏使用的命名约定(好吧,这不会是一个非常大的问题,但它会很烦人!)而且它仍然感觉像是一个短期解决方案.

还需要做什么?

Dyl*_*ith 13

简短的回答是路径长度限制真的很烦人,你将不得不花费一些(更多)时间调整你的文件/文件夹结构来使这项工作.

例如,代替\nas\Build\Drop\MyProject,只需执行\nas\Build\Drop(或\nas\Builds),因为项目名称也在构建名称中.

展平项目中的文件夹结构(你真的需要MyProject下的Source文件夹吗?).

此外,投票支持TFS团队的UserVoice建议以修复路径长度限制:http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2156195-fix-260-character-file-name -长度,限制

  • 新用户语音链接,保持压力;)http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4954037-fix-260-character-file-name-length-limitation (2认同)