编译Azure项目时,Visual Studio Online构建失败

时间:2015-11-24 23:52:02

标签: continuous-integration azure-devops

我有一些使用本地服务器在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的构建)。

1 个答案:

答案 0 :(得分:0)

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

这可以防止并发构建,强制MSBuild一次处理一个项目。遗憾的是,这似乎是解决了很多构建问题的方法。