实施增量构建后,TFS / MSBuild会打破静态内容

时间:2011-12-19 13:57:23

标签: .net tfs msbuild tfs2008

为了加快构建,我们已切换到增量构建。在this MSDN page中描述的,我已将以下信息添加到我的构建项目中:

   <PropertyGroup>
      <SkipClean>true</SkipClean>
      <SkipInitializeWorkspace>true</SkipInitializeWorkspace>
      <ForceGet>false</ForceGet>
   </PropertyGroup>

一切正常,建筑物的速度更快。最近我遇到了这些类型的错误,这些错误打破了我的构建:

  

[任何CPU / Release] C:\ Program   FILES \的MSBuild \微软\ VisualStudio的\ 9.0 \ web应用\ Microsoft.WebApplication.targets(60.3):   错误MSB3021:无法将文件“IMAGES \ tab \ black.gif”复制到   “d:\建立\二进制\ Release_PublishedWebsites \ MyApp的\ IMAGES \标签\ black.gif”。   访问路径   'd:\建立\二进制\ Release_PublishedWebsites \ MyApp的\ IMAGES \标签\ black.gif'   被拒绝。

此问题仅在有时时发生。它是从不是dll (与SO上的其他问题一样),但始终是.gif或.css文件(静态内容)。这些类型的文件是如何被锁定的?

<子> 删除临时二进制目录可以解决下一个构建的问题......但这不是一个正确的解决方案。

2 个答案:

答案 0 :(得分:1)

我的构建遇到了同样的问题,但是我们不执行增量构建。

我提出的问题的解决方法是编辑您的构建定义并设置清理工作区选项(在流程&gt; 2。基本< / strong>)到输出(来自无)这可以防止它发生和。这并没有给我们的构建增加太多开销,但它们是在SSD上完成的。

我认为这是一个问题,一些文件被复制过来,但仍然设置了只读标志,但从来没有弄明白。

答案 1 :(得分:0)

您的解决方案似乎有多个网站项目。每个网站都发布到相同的D:\ Build \ Binaries \ Release_PublishedWebsites \ MyApp文件夹。您在两个或多个网站中使用相同的图像名称作为内容。当这些网站项目并行构建时,网站有时会同时构建。一个网站项目正在尝试将其内容复制到输出文件夹,而其他网站项目已将相同的内容复制到目标文件夹。