2015-09-07 80 views
16

我有麻煩與NuGet包一個TFS期間恢復到2015年建設「無法找到版本」 TFS中構建2015年恢復的NuGet包

由於一些軟件包需要的NuGet 3.x客戶端,我已經配置了當新的腳本編譯使用一個定製的NuGet位置,我已經放置了NuGet Command-Line 3.x beta的可執行文件。

每當我運行構建,所有的包不能被恢復,的NuGet拋出「無法找到版本......」錯誤:

Unable to find version '1.1.10' of package 'Microsoft.Bcl'. 
Unable to find version '4.0.10' of package 'System.Threading'. 
Unable to find version '1.1.37' of package 'System.Collections.Immutable'. 
Unable to find version '1.0.0' of package 'Owin'. 
Unable to find version '4.1.0' of package 'NLog'. 
Unable to find version '7.0.1' of package 'Newtonsoft.Json'. 
Unable to find version '2.0.1' of package 'MongoDB.Driver.Core'. 
Unable to find version '2.0.1' of package 'MongoDB.Driver'. 
Unable to find version '2.0.1' of package 'MongoDB.Bson'. 
Unable to find version '3.0.1' of package 'Microsoft.Owin.Security.OAuth'. 

...甚至更多的包。我相信這個問題很清楚。

當我使用Visual Studio在構建機器中構建相同的解決方案時,所有包都成功恢復。

我該如何解決這個問題?

+0

你有沒有安裝任何Microsoft.CodeAnalysis的NuGet軟件包?我做了,我開始得到這些錯誤,當我刪除所有這些,然後再次開始工作。 – Schenz

+0

@Schenz我沒有這個NuGet包 –

回答

21

在我的情況下,問題是,用戶範圍位於C:\Users\[User name]\AppData\Roaming\NuGet\NuGet.config(其中[User name]是誰的運行生成代理的Windows服務的用戶)NuGet.config指着的NuGet API第2 while my build is already using NuGet Command-Line 3.x

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> 
    <!-- CHANGING V2 TO V3 IN THE URI VALUE SOLVED THE ISSUE! --> 
    <add key="nuget.org" value="https://www.nuget.org/api/v3/" /> 
    </packageSources> 
</configuration> 
+0

我有一個類似的問題,但只有當試圖通過包管理器控制檯安裝包時;包管理器對話框工作正常。這個答案指出了我的正確方向:它是包源代碼的URL。在我的情況下,Nuget.config中的URL說''https://www.nuget.org/api/v2/「'。當我刪除「www」,將其改爲「」https://nuget.org/api/v2/「'它工作。 –

+5

https://www.nuget.org/api/v3/ - 這個位置不存在(https://api.nuget.org/v3/index.json確實)...並且這裏定義了兩個鍵都有相同的ID(「nuget.org」) – CJBS

+0

在我的情況下,第三個版本已經準備好在配置中。我剛剛刪除了配置文件的所有內容,它幫助: <?xml version =「1.0」encoding =「utf-8」?> David

3

在我的情況Nuget.Config,是:

C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\NuGet 

C:\所以搜索Nuget.Config

用戶取決於您配置的Agent

-1

確保包源檢查帳戶...

進入工具 - > NuGet包管理器 - >軟件包管理器設置

然後點擊「包裝來源」,並確保包裝被選中。

enter image description here

+1

但我們正在討論TFS Build –

+0

所有的包都簽入TFS? – Zenacity

+0

是啊!!!!!!!!!!!! –

1

如果由於某種原因在漫遊文件夾更新NuGet.config是不是一種選擇或不想要的,也可以將配置文件添加到解決方案根。

根據該文檔:

  • 項目特定的位於任何文件夾中從溶液中夾到驅動器根NuGet.Config文件。這些允許對設置進行控制,因爲它們適用於項目或一組項目。
  • 位於解決方案的.nuget文件夾中的特定於解決方案的NuGet.Config文件。此文件中的設置僅適用於解決方案範圍的軟件包,並且僅在NuGet 3.3及更早版本中受支持。 NuGet 3.4及更高版本將忽略它。

Config file locations and uses

+0

不錯的加法。看來這個問題有很多解決方法/解決方案取決於具體情況! –

相關問題