2014-09-03 134 views
0

是否可以從腳本中的私人訂閱源獲取NuGet包(即需要登錄/密碼)?從私人訂閱源通過命令行安裝NuGet包

我有一個NuGet包與單個JSON文件。它託管在私人的TeamCity源上。我想用一個腳本,JSON,所以這裏就是我想要做的事:

nuget sources add -Name tc -Source https://xxxxxxxxx/ -Username username -Password password 
nuget install xxxxxxxx -source tc 
nuget sources remove -Name tc 

導致成Unable to find version '1.0.7' of package 'xxxxxxx'.這是奇怪的,對於因爲它看到的版本它顯然能夠達到飼料包,但無法下載該包。

我也嘗試將軟件包安裝到一個虛擬.sln並運行nuget restore xxxxx.sln。的NuGet然後要求我提供證書,兩次:

Please provide credentials for: https://xxxxxxxx/httpAuth/app/nuget/v1/xxxxx.svc/ 
Please provide credentials for: https://xxxxxxxx/httpAuth/repository/download/xxxxx/1148145:id/xxxxxxxx.1.0.7.nupkg 

創建與進料&憑據聲明也導致在同一Unable to find錯誤NuGet.config

當我從VS安裝/恢復軟件包時,它工作正常。

這兩個問題似乎與:

+0

你使用的是哪個版本的NuGet.exe?在使用最新的NuGet.exe 2.8.2(2.8.50506.491)時,使用Team City進行還原時出現了類似的問題,但使用2.8.1(2.8.50320.36)似乎可行。 – 2014-09-03 16:40:26

回答

0

它看起來就像是一個與TC飼料有問題。我不認爲是這種情況,因爲我可以使用來自VS Package Manager的提要,問題只在於命令行NuGet。

我打開-Verbosity detailedthanks danliu)和這裏就是我看到:

GET https://xxxxxx/httpAuth/app/nuget/v1/FeedService.svc/Packages(Id='xxxxxx',Version='1.0.7') 
GET https://xxxxxx/httpAuth/app/nuget/v1/FeedService.svc/Packages(Id='xxxxxx',Version='1.0.7.0') 
System.InvalidOperationException: Unable to find version '1.0.7' of package 'xxxxxx'. 

GET https://xxxxxx/httpAuth/app/nuget/v1/FeedService.svc/Packages(Id='xxxxxx',Version='1.0.7')返回404,我認爲這是關係到它在TeamCity的的NuGet飼料設置提到的服務器配置問題的要求:

NuGet Feed must contain server URL inside. Current TeamCity server configuration does not let TeamCity server to get original request URL from HTTP request. It looks like TeamCity server is wrongly configured with reverse proxy. Make sure reverse proxy and TeamCity server is configured to let TeamCity server know request real request URL. 

我試圖在MyGet上託管包並從那裏安裝它。它解決了。