Drücken Sie das NuGet-Paket programmgesteuert mit NuGet.Core

8

Ich verpacke derzeit einige Dateien und schiebe sie mit dem Befehlszeilentool auf einen NuGet-Feed auf einem unserer Server. Anstatt das Befehlszeilentool zu verwenden, habe ich ein Projekt mit Nuget.Core eingerichtet und erfolgreich ein Paket erstellt. Ich versuche nun, das Paket von meinem Rechner über NuGet.Core auf den NuGet-Feed zu übertragen. Mit dem Befehlszeilen-Tool, das so aussieht (und ich habe das auch funktioniert):

%Vor%

Ich möchte die Push-Funktion mit NuGet.Core replizieren. Der nächste, den ich bisher erreicht habe, ist, zwei Repositories von PackageRepositoryFactory zu holen, einen für den lokalen Rechnerpfad und einen für den Paket-Feed und dann das Paket von dem lokalen zu holen und es dem Feed hinzuzufügen das:

%Vor%

Dieser Code führt zu NotSupportedException und gibt an, dass die angegebene Methode nicht unterstützt wird

Ist es möglich, Pakete mit NuGet.Core zu pushen? Und bin ich mit dem obigen Code irgendwo in der Nähe?

Hinweis: Ich bin mir bewusst, dass ich den Aufruf an nuget.exe umbrechen und diesen von .NET aufrufen könnte, aber ich möchte entweder packen und von NuGet.Core pushen oder beides tun, indem ich die Aufrufe an nuget.exe anlege als halb und halb

    
rh072005 24.10.2014, 14:11
quelle

2 Antworten

9

Es stellt sich heraus, dass ich völlig falsch an der Stelle gesucht habe. Die Methode, die ich wollte, war PushPackage auf PackageServer

Der Code sieht jetzt so aus

%Vor%

Ich bin nicht sicher, was die besten Werte für den userAgent-Parameter wären, wenn das PackageServer neu erstellt würde. Wenn jemand einen Hinweis darauf hat, was die Parameter timeout oder disableBuffering sein sollen, lassen Sie es mich wissen (zum Beispiel die Zeitüberschreitung in ms, Sekunden usw.)

Die Signatur der PushPackage-Methode sieht folgendermaßen aus:

%Vor%     
rh072005 24.10.2014, 15:20
quelle
1

Zusätzlich zur Antwort von rh072005:

  • Timeout ist in Millisekunden, seien Sie vorsichtig.
  • Uri ist schwierig. Für die Implementierung von NuGet.Server sollte PushPackage uri " Ссылка " sein, während für IPackageRepository-Objekte Uri zu " Ссылка wird "
  • Bei großen Paketen erhalten Sie (404) Not Found , wenn der IIS-Server nicht für die Annahme großer Anforderungen konfiguriert ist.
Azat Khadiev 02.09.2015 07:41
quelle

Tags und Links