2017-01-10 50 views
1

我需要从TFS构建过程中作为nuget包恢复的一部分下载的包中执行命令行实用程序。位于使用TFS的托管构建服务器上的nuget包文件夹在哪里?

在我的本地计算机存储在C:\用户\ me.nuget *

我试过的,每一个排列在TFS没有成功。我也试过\ mydir \软件包,但没有成功。

最大的问题是我必须先运行包恢复步骤才能看到来自日志的任何反馈。这是一些缓慢的调试。

任何想法?谢谢你。

回答

1

Nuget包缓存文件夹位于C:\ Users \ buildguest.nuget \ packages中,但如果您使用的是Hosted构建服务器,则会在生成后进行清理。 简单的方法来验证:

  1. 添加的NuGet恢复或.Net核心恢复构建步骤来恢复包
  2. 添加PowerShell的构建步骤列出在C文件:\用户\ buildguest.nuget \包

代码:

Get-ChildItem -Path C:\Users\buildguest\.nuget\packages 
  • 队列构建和检查的PowerShell步骤日志(包将在列出日志)
  • 删除/禁用的NuGet恢复或.Net核心还原生成步骤>保存构建定义
  • 队列建立
  • 构建将失败,因为该路径不存在。
  • 因此,在构建解决方案/项目(如果不存在)之前需要恢复包。您可以将软件包添加到源代码管理,并映射到生成代理来处理恢复软件包所需的时间太长的问题。

    +0

    就是这样!谢谢一堆。旁边的问题,那个路径一致吗?例如该路径的变量。 $(美孚)。找不到那个位置。 – trevorc

    +0

    @trevorc该路径没有内置变量。 –

    0

    随着最新的NuGet/MSBuild的包文件夹活跃用户的配置文件目录下举行,所以适当的PowerShell命令是

    Get-ChildItem $(UserProfile)\.nuget\packages 
    

    这目前评估在VSTS 2017年托管生成代理到C:\用户\ VssAdministrator.nuget \ packages,但通过使用变量,您可以与所做的任何更改隔离。

    相关问题