2017-08-20 2 views
1

Bei der Arbeit erstellen wir Nuget-Pakete, die wir in VSTS speichern. Alle Entwickler haben unser Repository der globalen Datei nuget.config hinzugefügt (im Ordner% appdata% \ Nuget), ein persönliches Zugriffstoken (PAT) erstellt und CredentialProvider.VSS.exe installiert. Daher werden Nuget-Pakete unter Verwendung der Befehlszeile, z. nuget.exe restore, erfolgt ohne Angabe von Passwörtern oder Benutzernamen.Authentifizierte Installation von Chocolate-Paketen, die in VSTS gehostet werden

Wenn Sie das gleiche Rezept für Chocolatey-Pakete verwenden, funktionieren die Dinge nicht so gut. Die blog at roadtoalm.com beschreibt, wie Sie Chocolatey-Pakete installieren können, die in VSTS gespeichert sind, aber Sie müssen die PAT, die Repository-Adresse und den Benutzernamen angeben (obwohl letzterer ein gefälschter Wert sein kann, wird er nicht verwendet). Gibt es keine Möglichkeit, dass Chocolatey den Credential Provider nutzt, so wie es nuget tut?

aktualisieren: Nach meiner Choco-Repository von bekannten repos in die Liste aufgenommen zu haben, meine chocolatey.config Datei sieht aus wie

<sources> 
    <source id="chocolatey" value="https://chocolatey.org/api/v2/" disabled="true" bypassProxy="false" selfService="false" priority="0" />  
    <source id="CompanyChoco" value="https://Company.pkgs.visualstudio.com/_packaging/CompanyChoco/nuget/v2/" disabled="false" bypassProxy="false" selfService="false" priority="1" /> 
    </sources> 

wie von @ starain-MSFT, ich ein Paket erstellt habe CONFIG-Datei, die wie folgt aussieht:

<?xml version="1.0" encoding="utf-8"?> 
    <packages> 
    <package id="MyPackage" version="0.0.4" source="https://Company.pkgs.visualstudio.com/_packaging/CompanyChoco/nuget/v2/" /> 
    </packages> 

ich habe auch dafür gesorgt, dass ich die neueste Version von CredentialProvider.VSS.exe in% installiert haben AppData% \ local \ nuget \ credentialproviders. Wenn "choco install package.config" ausgeführt wird, werde ich immer noch aufgefordert, den Benutzernamen und das Passwort einzugeben.

Antwort

2

Versuchen Sie es mit diesen Schritten:

  1. definieren Pakete in Packages.config
  2. Anruf choco source add command eine andere Quelle hinzufügen (choco Quellenliste mit Quellen zu überprüfen) choco install [packages.config] command
  3. Anruf Pakete zu installieren.
+0

Nach dem Link, den Sie in Schritt 1 erwähnen, sehe ich, dass packages.config etwas verwendet wird, wenn Sie eine Reihe von Choco-Pakete herunterladen möchten, so sehe ich nicht, wie dies helfen wird. Die Schritte 2-3 sind genau das, was ich bereits getan habe, aber das ist nicht ausreichend, wenn die Choco-Pakete in VSTS gespeichert sind. Bitte beachten Sie, dass es sich bei der Frage um Choco-Pakete handelt, die in VSTS gespeichert sind, und nicht über Chocolatey-Repositories im Allgemeinen. – SimonAx

+0

@SimonAx 1.Die packages.config definiert die Pakete, die Sie installieren möchten, und Sie können auch die Quelle für das Paket angeben. Können Sie die Probe zur Verfügung stellen, um Ihre Anforderung zu erklären? 2. Ja, die Pakete werden in VSTS gespeichert, der Befehl choco source add wird zum Hinzufügen Ihres VSTS-Feeds verwendet, Sie können die Priorität angeben (--priority, höher als andere) und dann nach den Paketen aus Ihrem VSTS-Feed suchen zuerst. Übrigens hilft die CredentialProvider.VSS.exe bei der Authentifizierung. –

+0

Problem gelöst: Stellen Sie in Schritt 2 sicher, dass Sie Benutzername und Passwort hinzufügen. Eine Hash-Version der PAT wird in der choco-Konfigurationsdatei gespeichert. Die Syntax lautet 'choco sources add -n" NameOfRepo "-s" https://Company.pkgs.visualstudio.com/_packaging/CompanyChoco/nuget/v2/"'-u "DoesntMatter" -p "PAT" Verbindung zum Repo mit v3 funktioniert jedoch nicht (auch in Link in der ursprünglichen Frage angegeben). – SimonAx

Verwandte Themen