我需要从TFS构建过程中作为nuget包还原的一部分下载的包中执行命令行实用程序。
在我的本地计算机上存储在c:\ users \ me.nuget *
中我已经尝试过对TFS的每一种排列都没有成功。我也试过\ mydir \ packages也没有成功。
最大的问题是我必须运行包恢复步骤才能从日志中看到任何类型的反馈。这是一些缓慢的调试。
有什么想法吗?谢谢。
答案 0 :(得分:4)
使用最新的nuget / msbuild,packages文件夹保存在活动用户的配置文件目录下,因此适当的Powershell命令
Get-ChildItem $(UserProfile)\.nuget\packages
这当前评估VSTS 2017托管构建代理到C:\ Users \ VssAdministrator \ .nuget \ packages,但是使用变量来隔离所做的任何更改。
答案 1 :(得分:1)
Nuget包缓存文件夹位于C:\ Users \ buildguest.nuget \ packages中,但如果您使用的是Hosted构建服务器,则会在构建后清除它。 验证的简单方法:
代码:
Get-ChildItem -Path C:\Users\buildguest\.nuget\packages
因此,如果不存在,则需要在构建解决方案/项目之前恢复软件包。您可以将包添加到源代码控制并映射到构建代理,以解决恢复包的时间过长的问题。
答案 2 :(得分:1)
只是@Paul Hatcher的回答的补充:
我在Azure DevOps构建管道中也遇到了相同的问题,在该管道中找不到特定的包和nuget包目录。
这是一个基于Xamarin.Forms
库的.net standard
应用,其中没有packages
文件夹。后来我在构建日志中注意到,这些软件包已还原到用户配置文件下的nuget文件夹中。但是,https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=vsts#agent-variables上没有记录这种特殊情况。
这意味着,如果您尝试直接从构建管道中引用nuget软件包文件夹,则@Paul Hatcher的答案同样有效。 ($(UserProfile).nuget \ packages)实际上应该是(标准)预定义的构建变量。