我已在我的解決方案中啓用NuGet軟件包還原。我正在使用nuget.exe版本2.0.30828.5。對於普通公共Feed中的軟件包,NuGet Package Restore工作正常。也就是說,如果「Packages」目錄中沒有任何內容,並且我的本地NuGet緩存(C:\ Users \ {用戶名} \ AppData \ Local \ NuGet \ Cache)已清除,則NPR可以很好地工作。NuGet軟件包還原無法提示使用自定義Feed的憑據
然而,當我們試圖在我們自定義的飼料使用NPR一個包(自定義源有基本身份驗證),我們得到這樣的:
EXEC : warning : Unable to prompt for credentials. Consult NuGet's help documentation for ways to specify credentials.
c:\<localpath>\.nuget\nuget.targets(80,9): error : Unable to find version '2.0.1.0' of package '<packageName>'.
c:\<localpath>\.nuget\nuget.targets(80,9): error MSB3073: The command ""c:\<localpath>\.nuget\nuget.exe" install "c:\<localpath>\packages.config" -source "" -RequireConsent -o "c:\<localpath>\packages"" exited with code 1.
當我在的NuGet代碼看起來和反編譯的NuGet .exe找到字符串「無法提示輸入憑據,請參閱NuGet的幫助文檔,瞭解如何指定憑據」我在那裏看到它,但坦率地說,我無法確定誰在使用該錯誤消息。
當我們添加包(來自NuGet UI或包管理器控制檯)時,它會提示輸入憑據並正常工作。這只是包還原的一個問題。
我試圖運行這個命令:
NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword}
,但得到了同樣的結果。
有誰知道如何使用基本身份驗證爲NuGet軟件包恢復指定憑據到自定義的NuGet Feed?
UPDATE 2012年9月18日
我對問題的更新。我觀察到,當我運行nuget.exe源更新...命令時,它將該部分添加到位於本地解決方案的.nuget文件夾中的NuGet.config文件中。然後,我運行procmon.exe運行編譯時注意到這個文件沒有被查看!相反,它正在尋找「C:\ Users {用戶名} \ AppData \ Roaming \ NuGet」目錄中的NuGet.config文件。然後我將本地NuGet.config文件中的部分複製/粘貼到\ AppData \ Roaming \ NuGet目錄下的NuGet.config文件中,並且它工作正常!
所以...問題是,什麼是正確這個過程的最佳實踐?
我的理解是還有一個選項可以向Nuget.exe提供一個配置文件,所以當你調用它來嘗試並使用該文件時,你可以嘗試更加明確,但也許它會被某些命令忽略。 – dragon788