首页 文章

Nuget包下载但未安装在TFS Build上

提问于
浏览
0

Headers 几乎说明了一切 . 我有一个使用一些nuget包的项目 . 所有都已下载,但从未安装其中两个(HTMLAgilityPack和Newtonsoft),即未提取.nupkg文件,因此无法找到所需的.dll并且构建失败 . 以下是构建日志文件中显示在构建服务器上还原包的时间的部分:

从“## . csproj”文件“## \ nuget.targets”中定位“RestorePackages:(TargetId:587)”(目标“ResolveReferences”取决于它):由于错误条件,任务“Exec”被跳过;任务“Exec”(TaskId:360)任务参数:Command =“## \ nuget.exe”install“## \ packages.config”-source“https://nuget.org/api/v2/”-RequireConsent - solutionDir“## \ Sources \”(TaskId:360)任务参数:LogStandardErrorAsError = True(TaskId:360)“## \ nuget.exe”安装“## \ packages.config”-source“https:// nuget . org / api / v2 /“-RequireConsent -solutionDir”## \ Sources \“(TaskId:360)已成功安装'### . Utilities.Excel 1.0.0.0' . (TASKID:360)
已成功安装'### . Utilities.FileIO 1.0.0.1' . (TASKID:360)
已成功安装'### . Utilities.String 1.0.0.0' . (TASKID:360)
package.config中列出的所有软件包都已安装 .
(TaskId:360)完成执行任务“Exec” . (TaskId:360)在项目“## . csproj”中完成构建目标“RestorePackages”:( TargetId:587)

如您所见,HTMLAgilityPack和Newtonsoft未作为RestorePackages任务的一部分安装 . 为什么TFS会构建下载但不安装这些软件包?

2 回答

  • 1

    正如您所写,旧的nuget.exe将执行此操作 .

    我所做的是取出“..nuget \ nuget.exe” .

    我把nuget.exe放在构建服务器上 .

    我把它们存储起来:

    C:\MyProgFiles\NuGet\2.8.6\nuget.exe
    C:\MyProgFiles\NuGet\3.3.0\nuget.exe
    

    你可能会问我为什么要保留这些老人 . 最新版本偶尔会出现问题 .

    然后在我的构建中,我设置构建服务器,我基本上运行这个:

    "C:\MyProgFiles\NuGet\3.3.0\nuget.exe" restore c:\builds\1\SomeDirectory\MySolution.sln -NoCache
    

    显然,您将使用宏而不是硬编码路径 .

    这(显然)将恢复包 .

    我使用“NoCache”,因为偶尔我们的私有nuget缓存已经删除了......它们被缓存在构建服务器上 . nocache arg将很快发现这个问题 .

  • 0

    如果有其他人遇到这个可能是你_2715703与之兼容的nuget.exe . 您可以下载最新版本的nuget.exe here .

相关问题