我们有一个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)保存几个字符,但还不够.我想我们可以稍微缩短构建名称,但它会破坏使用的命名约定(好吧,这不会是一个非常大的问题,但它会很烦人!)而且它仍然感觉像是一个短期解决方案.
还需要做什么?