我们已经使用构建服务器设置了TFS(2015)并且构建了多个解决方案(一些是手动的,另一些是自动的)。
有时构建会莫名其妙地失败,并且会出现很多错误,说明程序集丢失了,如下所示:
The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
要修复它,我只需要再次对构建进行排队。没有编辑,没有签到,只是“排队新建”,并且它成功构建。
它可能发生在手动构建,自动构建,单个构建或构建多个解决方案上。我看不出为什么会发生这种情况的任何可辨认的模式。我不认为这是一个nuget问题,因为当构建服务器在下载nuget包时失败时我们会看到不同的错误(同样,nuget甚至用于下载System.Runtime?我认为该库在服务器上很容易获得?)
正如我所说,很容易解决这个问题,但我们正在使用连续集成和自动部署(Octopus)来简化我们的发布周期,当构建错误蜂鸣器开始响铃时,这些“假”错误非常烦人。
答案 0 :(得分:0)
尝试设置MSBuild参数'到/m:1
迫使MSBuild对所有项目使用单个进程,以查看它是否有用。
答案 1 :(得分:0)
正如可能预料的那样,问题是人为错误。所有可用的构建代理都已添加到此特定解决方案的池中,其中一个代理没有安装.Net Framework 4.5.2。代理已从池中删除,如果我从系统管理员是正确的,然后错误应该现在停止发生。