【问题标题】:TFS 2015 OnPrem Nuget Restore ErrorTFS 2015 OnPrem Nuget 还原错误
【发布时间】:2016-08-23 21:17:34
【问题描述】:

设置:

  • TFS 2015 更新 2
  • Build Agent 正在 Windows 2012 Server 上运行
    • Visual Studio 2015 Update 2 安装在构建系统上

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

2016-04-28T16:35:03.3605826Z 将工作文件夹设置为默认值:E:\agent\tasks\NuGetInstaller\0.1.17

2016-04-28T16:35:03.4073604Z 执行 powershell 脚本:E:\agent\tasks\NuGetInstaller\0.1.17\NuGetInstaller.ps1

2016-04-28T16:35:05.0948829Z 保存到 E:\agent_work\1\NuGet\newNuGet.config

2016-04-28T16:35:05.1418632ZE:\agent\agent\worker\tools\NuGet.exe 恢复“E:\agent_work\1\s\Dev\eCommerce\Consol.eCommerce.sln”-NonInteractive -配置文件“E:\agent_work\1\NuGet\newNuGet.config”

2016-04-28T16:35:05.8761260Z MSBuild 自动检测:使用来自“C:\Program Files (x86)\MSBuild\14.0\bin”的 msbuild 版本“14.0”。

2016-04-28T16:35:06.6105618Z 恢复 NuGet 包 System.Reflection.Metadata.1.2.0。

2016-04-28T16:35:08.9542747Z 警告:找不到包“System.Reflection.Metadata”的“1.2.0”版本。

2016-04-28T16:35:09.0012648Z ##[错误]找不到包“System.Reflection.Metadata”的“1.2.0”版本。

2016-04-28T16:35:09.0323998Z ##[error]从工具 NuGet.exe 返回的意外退出代码 1

现在这是我迷路的地方,我检查了 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 端点对于这样的评论包很重要?

【问题讨论】:

    标签: visual-studio-2015 tfs nuget tfsbuild tfs-2015


    【解决方案1】:

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

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


    更新

    System.Reflection.Metadata 1.2.0 只需要 NuGet 2.8.6 或更高版本。对于 NuGet 源 v3(VS 2015 / NuGet v3.x):https://api.nuget.org/v3/index.json 和 NuGet 源 v2(VS 2013 及更早版本 / NuGet 2.x):https://www.nuget.org/api/v2。既然您使用的是 VS2015,也许添加 V3 网址就可以了。

    【讨论】:

    • 我昨天和今天多次这样做,但今天早上终于解决了,但解决方案比问题更没有意义。我将更新问题以显示我找到的解决方案。
    • System.Reflection.Metadata 1.2.0 只需要 NuGet 2.8.6 或更高版本。对于 NuGet 提要 v3(VS 2015 / NuGet v3.x):api.nuget.org/v3/index.json 和 NuGet 提要 v2(VS 2013 及更早版本 / NuGet 2.x):nuget.org/api/v2。由于您使用的是 VS2015,也许添加 V3 网址就可以了。
    【解决方案2】:

    这取决于 Visual Studio 使用的 nuget 客户端版本,然后 nuget 客户端期望使用特定版本的 api,看起来更像 nuget 客户端版本而不是版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2015-12-02
      • 2017-12-04
      相关资源
      最近更新 更多