2013-11-26 4 views
16

Ich habe einen privaten nuget-Feed mit einer leeren Webanwendung und dem nugget-Serverpaket eingerichtet. Es funktioniert alles, ich kann aus dem Feed abrufen, und ich kann mit dem Nuget-Paket-Explorer in den privaten Feed veröffentlichen. Aber ich kann nicht über die Befehlszeile veröffentlichen - es fordert zur Eingabe von Anmeldeinformationen. Ich habe den ApiKey in der Webanwendung in den Appsettings auf ein einfaches Passwort gesetzt, und ich habe versucht, den ApiKey zum Push-Befehl hinzuzufügen. Dies fragt mich nach einem Benutzernamen und dann nach einem Passwort. Ich habe auch den SetApiKey Befehl versucht, aber ich bekomme das gleiche Verhalten. Auf dem Build-Server versuche ich das gleiche mit den gleichen Ergebnissen.Pushing to private nuget feed Eingabeaufforderungen für Anmeldeinformationen

Hier werden die Fehlermeldungen aus dem Build Log ist (Identifizierung Info x'D out)

nuget pack "C:\Builds\2\OE Phase II\Common\src\WebApi\Web.Http\Bxxxxxxxs.Web.Http.csproj" -IncludeReferencedProjects -Properties Configuration=Release 
    nuget SetApiKey Bxxxxxxx1 -Source http://tfs12.xxxxxxxrps.com/Nuget 
    nuget push *.nupkg -s http://tfs12.xxxxxxxrps.com/Nuget/ 
    C:\Builds\2\OE Phase II\Common\bin\xxxxxxx.Web.Http.dll 
    1 File(s) copied 
    Attempting to build package from 'xxxxxxx.Web.Http.csproj'. 
    Packing files from 'C:\Builds\2\OE Phase II\Common\src\WebApi\Web.Http\bin\Release'. 
    Using 'xxxxxxxs.Web.Http.nuspec' for metadata. 
    Found packages.config. Using packages listed as dependencies 
    Successfully created package 'C:\Builds\2\OE Phase II\Common\bin\xxxxxxxs.Web.Http.1.0.0.0.nupkg'. 
    The API Key 'xxxxxxx' was saved for 'http://tfs12.xxxxxxxrps.com/Nuget'. 
    Pushing Bxxxxxxxrs.Data 1.0.0.0 to 'http://tfs12.xxxxxxxrps.com/Nuget/'... 
    Please provide credentials for: http://tfs12.xxxxxxxrps.com/Nuget/ 
    Object reference not set to an instance of an object. 
    UserName: Password: 

Antwort

9

Gefunden Lösung für Windows Server 2012 und Nuget.Server 2.8.5

  • Öffnen Sie IIS-Manager
  • finden Ihre "Nuget.Server" Anwendung
  • rechte Maustaste und wählen Sie "Berechtigungen bearbeiten"
  • Gehe zu Registerkarte "Sicherheit"

Hinzufügen "Schreib" -Eigenschaft für Gruppe "Jeder".

+0

Ich habe dies nur als Antwort markiert, da es meine Kommandozeile repariert hat, um ein Paket zu pushen. Seltsamerweise hat der Package Explorer aufgehört zu arbeiten, um auf den Server zu pushen und meine Suche nach dem Warum hat mich zu meiner ursprünglichen Frage zurückgeführt. So, jetzt ist die Befehlszeile behoben, aber der Paket-Explorer funktioniert immer noch nicht. – Noel

+1

Wenn Sie ein wenig sicherer sein wollen, fügen Sie nur Schreibberechtigungen für Benutzer nicht alle hinzu. – Kam

+5

Ich bin auf Windows 7 mit IIS 7.x. Ich musste den folgenden lokalen Benutzern die Berechtigung "Schreiben" hinzufügen: IUSR und IIS_IUSRS –

1

API-Schlüssel ist für das Hochladen/Schieben Pakete. Offenbar haben Sie einen http-Proxy aktiviert, und Sie können den Benutzernamen und das Passwort festlegen, indem Sie den Befehl nuget.exe config aufrufen.

Einige Beispiele:

nuget Config -Set HTTP_PROXY = http: // * *.. . -Set HTTP_PROXY.USER = domain \ user

nuget.config HTTP_PROXY

http://docs.nuget.org/docs/reference/command-line-reference

+0

Die Eingabeaufforderung fragt nicht nach Proxy-Anmeldeinformationen. Es fragt nach den Repository-Anmeldeinformationen. – dss539

0

Auch, welche Version von NuGet.Server Paket haben Sie? NuGet hat bereits die Version 2.7.2 veröffentlicht.

Können Sie versuchen, um zu sehen, ob die Nullreferenzausnahme noch wiederholt? Vielen Dank.

0

Sie finden this SO answer hilfreich, da sie beschreibt, wie Anmeldeinformationen auf einer Workstation konfigurieren und/oder Server aufzubauen, die über eine Befehlszeile zu einem Server, der eine Authentifizierung erfordert schieben erforderlich ist (zB Private-Feed.)

Für die Veröffentlichung ist kein API-Schlüssel erforderlich. Auch

0

ich dieses Problem hatte, und ich wusste, dass es vorher gearbeitet, stellt sich heraus, ich war NuGet.exe 2.8.1 Upgrade mit mit

NuGet.exe update -self 

es 2.8.3 nahm und jetzt funktioniert gut.

1

Dies funktionierte für mich: Site> Authentifizierung> aktivieren Windows-Authentifizierung (ich hatte nur standardmäßig anonym) und Push wird Ihr Domain-Konto ohne Benutzereingaben verwenden.