【问题标题】:Visual Studio Online build fails randomly when compiling Azure projects编译 Azure 项目时,Visual Studio Online 构建随机失败
【发布时间】:2015-11-24 23:52:02
【问题描述】:

我有几个构建定义,用于使用本地服务器在 VSO 上运行的持续集成。问题是有时它们会失败,因为 Microsoft.WindowsAzure.targets 在构建 Azure 项目时无法复制某些文件(在本地构建时,无论是使用 VS 还是 MSBuild,都可以正常工作)。 我的解决方案的基本结构如下:

Solution
|_Azure.Web.App
| |_Roles
|   |_Web.App
|_Web.App
  |_Controllers
  |_Models
  |_Resources
  | |_File1.csv
  | |_File2.csv
  |_Startup
  | |_File3.cmd
  | |_File4.xml
  | |_File5.msi
  |_Views

问题是在构建Azure.Web.App时Resources和Startup文件夹中的文件没有复制到输出目录,显示这个错误:

[错误]C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Windows Azure Tools\2.7\Microsoft.WindowsAzure.targets(2787,5):错误 MSB3030:无法复制文件“Resources\File1.csv”,因为找不到。

所有文件设置为始终复制到输出目录,构建操作如下:

  • CSV 和 XML 文件的内容。
  • CMD 和 MSI 文件无。

我无法确定发生这种情况的具体情况,而且对我来说似乎很随机。通常在再次构建之前手动再次触发构建和/或删除代理目录中的源文件可以解决问题,这并不理想,因为目前持续集成不可靠。 仔细查看了所有现有主题,但没有找到适合我情况的主题。抱歉,如果问题已被提出,提前致谢。

编辑:忘了提我说的是基于 vNext 的新构建定义(不是基于 XML 的构建)。

【问题讨论】:

  • 在构建定义中将“Clean Workspace”设置为“All”,看看是否仍然可以看到此问题。
  • 谢谢埃迪!您是在谈论 Visual Studio Build 步骤中出现的“清理”选项吗?我会试试这个,看看效果如何。
  • 是的,还在构建定义中将“存储库”选项卡下的“清理”选项设置为“真”。
  • 嘿,埃迪,再次感谢您的回答。在过去的几天里,我一直在监控构建的健康状况,一切都运行良好,直到昨天和今天的构建失败。你碰巧有其他想法吗?可能是因为我们运行代理的服务器?
  • 构建失败时的错误信息是什么?

标签: continuous-integration azure-devops


【解决方案1】:

我发现在某些情况下会发生此特定错误,您可以通过在 MSBuild 步骤的“MSBuild 参数”设置中传递 /m:1 选项来阻止它发生。

这可以防止并发构建,迫使 MSBuild 一次处理一个项目。可悲的是,这似乎是解决很多构建问题的解决方法。

【讨论】:

  • 感谢 Ian,我刚刚添加了该参数,并将在几天内监控构建的运行状况。交叉手指!
  • 嗨伊恩,非常感谢!这个论点成功了。仍然不确定为什么一开始没有找到这些资源,但 CI 现在很可靠。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 2014-04-17
  • 1970-01-01
  • 2020-10-23
  • 2016-08-18
  • 1970-01-01
相关资源
最近更新 更多