TFS 2015 OnPrem Nuget 还原错误

TFS 2015 OnPrem Nuget Restore Error

设置:

我在安装了 VS 2015 Update 2 的代理上有一个构建(新)定义 运行。我有一个项目,其中包含多个 NuGet 包。直到今天下午,构建工作都按预期进行。我对完成后放置构建的位置进行了一些更改,然后我开始收到此错误:

2016-04-28T16:35:03.3605826Z Set workingFolder to default: E:\agent\tasks\NuGetInstaller[=12=].1.17

2016-04-28T16:35:03.4073604Z Executing the powershell script: E:\agent\tasks\NuGetInstaller[=12=].1.17\NuGetInstaller.ps1

2016-04-28T16:35:05.0948829Z Saving to E:\agent_work\NuGet\newNuGet.config

2016-04-28T16:35:05.1418632Z E:\agent\agent\worker\tools\NuGet.exe restore "E:\agent_work\s\Dev\eCommerce\Consol.eCommerce.sln" -NonInteractive -configfile "E:\agent_work\NuGet\newNuGet.config"

2016-04-28T16:35:05.8761260Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild.0\bin'.

2016-04-28T16:35:06.6105618Z Restoring NuGet package System.Reflection.Metadata.1.2.0.

2016-04-28T16:35:08.9542747Z WARNING: Unable to find version '1.2.0' of package 'System.Reflection.Metadata'.

2016-04-28T16:35:09.0012648Z ##[error]Unable to find version '1.2.0' of package 'System.Reflection.Metadata'.

2016-04-28T16:35:09.0323998Z ##[error]Unexpected exit code 1 returned from tool NuGet.exe

现在这就是我迷路的地方,我检查了 NuGet.org 并且包和这个版本存在。我什至去删除了我本地系统上项目中的所有包,然后进行了 NuGet 包还原,它工作得很好。我从项目中删除了 NuGet 包并重新添加它,它工作正常。

有没有人看到这个并且知道如何解决它?

2016 年 4 月 29 日更新: 所以正如我在下面的评论中所说,我已经整理好了。 我原来的 nuget.config 文件是这个

<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
  <packageSources>
    <add key="NuGet official package source v2" value="https://nuget.org/api/v2/" />
    <add key="FelineSoft NuGet" value="http://prod-tfs15:81/nuget" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
</configuration>

我把它改成了这个,它起作用了

<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
  <packageSources>
    <add key="NuGet official package source v3" value="https://api.nuget.org/v3/index.json" />
    <add key="NuGet official package source v2" value="https://nuget.org/api/v2/" />
    <add key="FelineSoft NuGet" value="http://prod-tfs15:81/nuget" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
</configuration>

新问题是,为什么 API 终点对这样的评论包很重要?

根据您的错误信息,这可能是由于您在构建代理上的工作目录已更改所致。由于您已经更改了放置构建的位置。这可能导致错误。

您可以删除构建代理上的工作目录,让它自动重新创建。然后再试一次。


更新

System.Reflection.Metadata 1.2.0 只需要 NuGet 2.8.6 或更高版本。对于 NuGet 提要 v3(VS 2015 / NuGet v3.x):https://api.nuget.org/v3/index.json and for NuGet feed v2 (VS 2013 and earlier / NuGet 2.x): https://www.nuget.org/api/v2。由于您使用的是 VS2015,也许添加 V3 url 就可以了。

这取决于 nuget 客户端 Visual studio 使用的是哪个版本,然后 nuget 客户端需要特定版本的 api 进行消费,看起来更像是 nuget 客户端版本然后是 vs 版本。