我在VSTS中为我们的项目创建了一个构建定义。 在NuGet安装程序步骤中,我指定:
2017-07-31T11:39:10.2496191Z ##[section]Starting: NuGet restore DirectoryName/AppServer/AppServer.sln
2017-07-31T11:39:10.2808709Z ==============================================================================
2017-07-31T11:39:10.2808709Z Task : NuGet Installer
2017-07-31T11:39:10.2808709Z Description : Installs or restores missing NuGet packages
2017-07-31T11:39:10.2808709Z Version : 0.2.31
2017-07-31T11:39:10.2808709Z Author : Microsoft Corporation
2017-07-31T11:39:10.2808709Z Help : [More Information](https://go.microsoft.com/fwlink/?LinkID=613747)
当我运行构建执行时,我在控制台上获取信息:
x <- mtcars
colnames(x)[1] <- '1mpg'
x$`1mpg`
它恢复了很多软件包,但有些软件包没有恢复。不抛出任何错误,没有警告,它们只是被省略,导致Build解决方案任务失败。
但是,当我登录到虚拟机(Azure)并在Visual Studio 2017中打开解决方案并逐个单击其中的每个项目并右键单击它,然后还原NuGet包时,一切都已成功下载。然后,在Get sources步骤中将Clean设置为false的条件下,构建定义执行是成功的。
答案 0 :(得分:1)
答案 1 :(得分:0)
引起了我的注意:
并逐一点击其中的每个项目
这可能与您的VSTS自动化功能不同,是吗?
一个可能的原因是你的某个项目是从它的packages文件夹引用nuget资源,但是packages.config 中缺少引用。如果某个其他项目正确引用了包,那么它恰好可用,但只有当某人首先编译该项目时才会这样。如果没有构建该项目,那么错误配置的项目也会失败。
所以我建议你:
此外,您应该验证日志并构建错误,而不是手动编译每个项目,而是复制构建服务器正在执行的确切步骤。通常是清理和构建整个解决方案。