2017-08-02 46 views
0

我在我们的项目的VSTS中创建了一个构建定义。 在的NuGet安装步骤我注明:NuGet省略了一些软件包,但手动恢复它们通过项目通过VS2017取得成功

Path to solution or packages.config: DirectoryName/AppServer/.nuget/NuGet.Config 
Path to NuGet.config: DirectoryName/AppServer/.nuget/NuGet.Config 
Installation type: Restore 
NuGet arguments: -PackagesDirectory DirectoryName\SDK\NuGet\packages 
NuGet Version: 3.3.0 

当我运行构建执行,我得到的信息在控制台上:

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) 

它恢复了很多包,但有些没有恢复。没有错误引发,没有警告,他们只是省略,并导致生成解决方案任务失败。

但是,当我登录到虚拟机(Azure)并在Visual Studio 2017中打开解决方案并逐个单击其中的每个项目并右键单击它时,然后恢复NuGet包,所有内容均成功下载。然后构建定义执行是成功的,条件是我在获取源代码步骤中将Clean设置为false。

+0

您能否在此发布详细记录?另一方面,你说路径解决方案或packages.config:DirectoryName/AppServer/.nuget/NuGet.Config,它是解决方案或packages.config,你有错误吗? –

+0

如果您在解决方案的路径或packages.config中指定解决方案,结果如何? –

+0

另一方面,有.nuget文件夹,你是否将vs2013项目升级到vs 2017? –

回答

0

这引起了我的注意:

并逐一

点击每一个项目在它这可能不是你的VSTS自动化在做同样的,是吗?

一个可能的原因是,您的项目之一是引用它的packages文件夹中的nuget资源,但引用从packages.config中缺少。如果其他项目已经正确引用了包,那么它恰巧可用,但只有当某人先编译该项目时才可用。如果该项目没有建立,那么你错误配置的项目也会失败。

所以我建议你:

  1. 检查生成错误,以确定哪个包是造成麻烦
  2. 验证给定的包确实是正确设置在packages.config在失败的项目和资源从正确的文件夹加载(版本匹配)。

此外,您应该通过手动编译每个项目来验证日志和生成错误,而不是复制构建服务器正在执行的确切步骤。通常是清理和构建整个解决方案。

1

尝试使用的NuGet 4.0.0版(的NuGet安装任务的高级部分指定它)。

另一方面,有1.*2.*版本的NuGet任务可用,您可以使用最新版本的任务。

enter image description here

相关问题