2012-09-17 19 views
6

Ho abilitato NuGet Package Restore nella mia soluzione. Sto usando la versione 2.0.30828.5 di nuget.exe. Per i pacchetti che si trovano nel normale feed pubblico, NuGet Package Restore funziona correttamente. Cioè, se non c'è nulla nella directory "Packages" e la mia cache locale NuGet (C: \ Users \ {username} \ AppData \ Local \ NuGet \ Cache) è chiara, NPR funziona perfettamente.Ripristino pacchetto NuGet Impossibile richiedere credenziali con feed personalizzato

Tuttavia, quando stiamo cercando di utilizzare NPR per un pacchetto nel nostro feed personalizzato (feed personalizzato ha l'autenticazione di base) otteniamo questo:

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. 

Quando guardo il codice NuGet così come decompilazione NuGet .exe per trovare la stringa "Impossibile richiedere le credenziali. Consulta la documentazione della guida di NuGet per i modi in cui specificare le credenziali" La vedo lì, ma sinceramente, non sono in grado di determinare chi sta utilizzando quel messaggio di errore.

Quando aggiungiamo il pacchetto (dall'interfaccia utente NuGet o dalla console di Gestione pacchetti), richiede le credenziali e funziona correttamente. Questo è solo un problema su Package Restore.

ho provato a fare funzionare questo comando:

NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword} 

ma ottiene lo stesso risultato.

Qualcuno sa come posso specificare le credenziali per un feed NuGet personalizzato utilizzando l'autenticazione di base per NuGet Package Restore?

UPDATE 9/18/2012

Ho un aggiornamento sulla questione. Ho notato che quando eseguivo il comando di aggiornamento sorgente nuget.exe ..., aggiungeva la sezione al file NuGet.config che si trovava nella cartella .nuget locale alla mia soluzione. Ho quindi eseguito procmon.exe durante l'esecuzione della build a notato che questo file non è stato visto! Invece stava cercando il file NuGet.config nella directory "C: \ Users {username} \ AppData \ Roaming \ NuGet". Quindi copio/incollato la sezione dal file NuGet.config locale nel file NuGet.config nella directory \ AppData \ Roaming \ NuGet e ha funzionato!

Quindi ... la domanda è, qual è la corretta best practice per questo processo?

risposta

6

Ho questo lavoro ora. Questo è quello che ho fatto per farlo funzionare. Per prima cosa appare il comando:

NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword} 

È il modo giusto per farlo. L'avvertenza è che, quando si esegue il comando "Aggiornamento origine nuget.exe", nuget.exe cercherà un file NuGet.config nella stessa directory in cui viene eseguito nuget.exe se esiste. IF esiste, memorizzerà le modifiche lì. Se esiste NON, memorizzerà le modifiche nel file NuGet.config che si trova nella directory% AppData% \ NuGet.

L'avvertenza supplementare è che, quando pacchetto di ripristino viene eseguito come parte della costruzione, si solo esamina il file NuGet.config nella directory% AppData% \ NuGet e ignora il file NuGet.config che è in la stessa directory del nuget.exe che viene eseguito (non sono sicuro che si tratti di un bug o di un errore).

Quindi, è necessario eseguire questo comando utilizzando un nuget.exe che si trova in una directory che fa non contiene un file NuGet.config per garantire che le modifiche vengano memorizzate nel file NuGet.config corretto nella directory% AppData% \ NuGet.

+0

La mia comprensione è che esiste anche un'opzione per fornire un file di configurazione a Nuget.exe, così si potrebbe tentare di essere più espliciti quando si chiama per provare e utilizzare quel file, ma forse viene ignorato per alcuni comandi. – dragon788

Problemi correlati