簡體   English   中英

TFS 2015 OnPrem Nuget還原錯誤

[英]TFS 2015 OnPrem Nuget Restore Error

設定:

  • TFS 2015更新2
  • Build Agent在Windows 2012 Server上運行
    • 在構建系統上安裝的Visual Studio 2015 Update 2

在此處輸入圖片說明

我在已安裝VS 2015 Update 2的代理上運行一個生成(新)定義。 我有一個項目,其中包含多個NuGet包。 直到今天下午,構建工作仍按預期進行。 我對完成后放置構建的位置進行了一些更改,然后開始出現此錯誤:

2016-04-28T16:35:03.3605826Z將workingFolder設置為默認值: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 -configfile“ 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 ## [錯誤]工具NuGet.exe返回了意外的退出代碼1

現在這是我迷路的地方,我檢查了NuGet.org,並且該軟件包和該版本存在。 我什至去了並刪除了本地系統上項目中的所有程序包,然后進行了NuGet程序包還原,一切正常。 我從項目中刪除了NuGet程序包,然后重新添加了它,效果很好。

有沒有人看過這個並且知道如何解決?

2016年4月4日更新:正如我在下面的評論中所述,我已經對其進行了整理。 我原來的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 feed v3(VS 2015 / NuGet v3.x): https ://api.nuget.org/v3/index.json和對於NuGet feed v2(VS 2013及更早版本/ NuGet 2.x): https:// www.nuget.org/api/v2 由於您使用的是VS2015,因此添加V3 url可以解決問題。

這取決於Visual Studio使用的是什么版本的nuget客戶端,然后nuget客戶端期望使用特定版本的api,看起來更像是nuget客戶端版本,然后是vs版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM