nuget.config Verweis

Das Verhalten von NuGet wird durch Einstellungen in verschiedenen NuGet.Config oder nuget.config Dateien gesteuert, wie in Allgemeine NuGet-Konfigurationen beschrieben.

nuget.config ist eine XML-Datei mit einem <configuration>-Knoten der obersten Ebene, in dem die in diesem Thema beschriebenen Abschnittselemente beschrieben werden. Jeder Abschnitt enthält null oder mehr Elemente. Siehe die Beispiele für die Konfigurationsdatei. Bei Einstellungsnamen ist die Groß-/Kleinschreibung zu beachten, und Werte können Umgebungsvariablen verwenden.

Tipp

Fügen Sie eine nuget.config-Datei im Stammverzeichnis Ihres Projektrepositorys hinzu. Dies gilt als bewährte Methode, da sie die Wiederholbarkeit fördert und sicherstellt, dass verschiedene Benutzer dieselbe NuGet-Konfiguration haben. Möglicherweise müssen Sie clear Elemente konfigurieren, um sicherzustellen, dass keine benutzer- oder computerspezifische Konfiguration angewendet wird. Erfahren Sie mehr darüber, wie Einstellungen angewendet werden.

Abschnitt „config“

Enthält verschiedene Konfigurationseinstellungen, die mit dem nuget config-Befehl festgelegt werden können.

dependencyVersion und repositoryPath gelten nur für Projekte, in denen packages.config verwendet wird. globalPackagesFolder gilt nur für Projekte, in denen PackageReference-Formate verwendet werden.

Schlüssel Wert
dependencyVersion (nur packages.config) Der DependencyVersion-Standardwert für „package install“, „restore“ und „update“, wenn der -DependencyVersion-Switch nicht direkt angegeben ist. Dieser Wert wird auch von der Benutzeroberfläche des NuGet-Paket-Managers verwendet. Die Werte lauten Lowest, HighestPatch, HighestMinor, Highest.
globalPackagesFolder (Nur Projekte mit PackageReference) Der Speicherort des Standardordners für globale Pakete. Der Standardwert lautet %userprofile%\.nuget\packages (Windows) oder ~/.nuget/packages (Mac/Linux). Ein relativer Pfad kann in projektspezifischen nuget.config-Dateien verwendet werden. Diese Einstellung wird von der NUGET_PACKAGES Umgebungsvariable außer Kraft gesetzt, die Vorrang hat.
repositoryPath (nur packages.config) Die Position anstelle des Standardordners $(Solutiondir)/packages, an der NuGet-Pakete installiert werden sollen. Ein relativer Pfad kann in projektspezifischen nuget.config-Dateien verwendet werden.
defaultPushSource Gibt die URL oder den Pfad der Paketquelle an, die bzw. der als Standard verwendet werden sollte, wenn für einen Vorgang keine anderen Paketquellen gefunden werden können.
http_proxy http_proxy.user http_proxy.password no_proxy Proxyeinstellungen, die beim Herstellen einer Verbindung zu Paketquellen verwendet werden sollen; http_proxy sollte das Format http://<username>:<password>@<domain> aufweisen. Kennwörter sind verschlüsselt und können nicht manuell hinzugefügt werden. Bei no_proxy ist der Wert eine durch Kommas getrennte Liste mit Domänen, die den Proxy-Server umgehen. Alternativ können Sie für diese Werte die Umgebungsvariablen „http_proxy“ und „no_proxy“ verwenden. Weitere Informationen finden Sie unter NuGet proxy settings (NuGet-Proxyeinstellungen) (skolima.blogspot.com).
maxHttpRequestsPerSource Steuert die maximale Anzahl paralleler Anforderungen, die von NuGet an jede Paketquelle für die Paketabhängigkeitsauflösung und Downloads gesendet werden. Der Standardwert dotnet.exe ist Int32.MaxValue, der von HttpClientHandler.MaxConnectionsPerServer der Eigenschaft abgeleitet wird. Diese Einstellung hat keinen Einfluss auf dotnet.exe für Mac OS, da die Drosselungsgrenze auf 16 eingestellt ist, dass der Fehler zu viele offene Dateien vermieden wird. Der Standardwert für NuGet client tools,das auf .NET Framework läuft, wie Visual Studio und nuget.exe ist 64 auf Windows und 1 auf Mono. Der Standardwert für Packages.configStilprojekte ist Environment.ProcessorCount. Das Konfigurieren der maxHttpRequestsPerSource Eigenschaft auf einen Wert kleiner als der Standardwert kann sich auf die NuGet-Leistung auswirken.
signatureValidationMode Gibt den Überprüfungsmodus an, der zum Überprüfen von Paketsignaturen für die Paketinstallation und Wiederherstellung verwendet wird. Gültige Werte sind accept, require. Wird standardmäßig auf accept festgelegt.

Beispiel:

<config>
    <add key="dependencyVersion" value="Highest" />
    <add key="globalPackagesFolder" value="c:\packages" />
    <add key="repositoryPath" value="c:\installed_packages" />
    <add key="http_proxy" value="http://company-squid:3128@contoso.com" />
    <add key="signatureValidationMode" value="require" />
    <add key="maxHttpRequestsPerSource" value="16" />
</config>

Abschnitt „bindingRedirects“

Konfiguriert, ob NuGet bei der Installation eines Pakets automatische Bindungsumleitungen durchführt.

Schlüssel Wert
skip Ein boolescher Wert, der angibt, ob automatische Bindungsumleitungen übersprungen werden sollen. Die Standardeinstellung ist „false“.

Beispiel:

<bindingRedirects>
    <add key="skip" value="True" />
</bindingRedirects>

Abschnitt „packageRestore“

Steuert die Paketwiederherstellung während der Erstellung von Builds.

Schlüssel Wert
enabled Ein boolescher Wert, der angibt, ob NuGet eine automatische Wiederherstellung durchführen kann. Sie können die Umgebungsvariable EnableNuGetPackageRestore auch mit dem Wert True festlegen, statt diesen Schlüssel in der Konfigurationsdatei festzulegen.
automatic Ein boolescher Wert, der angibt, ob NuGet während der Erstellung eines Builds eine Überprüfung auf fehlende Pakete durchführen sollte.

Beispiel:

<packageRestore>
    <add key="enabled" value="true" />
    <add key="automatic" value="true" />
</packageRestore>

Abschnitt „solution“

Steuert, ob der Ordner packages einer Projektmappe in der Quellcodeverwaltung enthalten ist. Dieser Abschnitt funktioniert nur in Dateien vom Typ nuget.config in einem Projektmappenordner.

Schlüssel Wert
disableSourceControlIntegration Ein boolescher Wert, der angibt, ob der Paketordner während der Arbeit mit der Quellcodeverwaltung ignoriert werden soll. Der Standardwert ist false.

Beispiel:

<solution>
    <add key="disableSourceControlIntegration" value="true" />
</solution>

Paketquellenabschnitte

packageSources, packageSourceCredentials, apikeys, activePackageSource, disabledPackageSources, trustedSigners und packageSourceMapping arbeiten alle zusammen, um zu konfigurieren, wie NuGet während Installations-, Wiederherstellungs- und Aktualisierungsvorgängen in Paketrepositorys funktioniert.

Der nuget sourcesBefehl wird im Allgemeinen verwendet, um diese Einstellungen zu verwalten, mit Ausnahme von apikeys, die über den nuget setapikeyBefehl verwaltet werden, und trustedSigners, die über den nuget trusted-signersBefehl verwaltet werden.

Beachten Sie, dass die Quell-URL für nuget.org https://api.nuget.org/v3/index.json ist.

packageSources

Listet alle bekannte Paketquellen auf. Die Reihenfolge wird bei Wiederherstellungsvorgängen und mit jedem Projekt mit dem PackageReference-Format ignoriert. NuGet respektiert die Reihenfolge der Quellen für Installations- und Aktualisierungsvorgänge mit Projekten, die packages.config verwenden.

XML-Attribut Zweck
Schlüssel (Der Name, der der Paketquelle zuzuweisen ist)
Wert Der Pfad oder die URL der Paketquelle.
protocolVersion Die zu verwendende NuGet-Serverprotokollversion. Die aktuelle Version ist 3. Standardmäßig wird version 2 verwendet, wenn keine Paketquell-URL mit .json angezeigt wird (z. B. https://api.nuget.org/v3/index.json). Unterstützt in NuGet 3.0+. Weitere Informationen zum Protokoll der Version 3 finden Sie unter NuGet Server-API .
allowInsecureConnections Wenn false oder nicht angegeben, wird NuGet eine Warnung ausgeben, wenn die Quelle http statt https verwendet. Wenn Sie sicher sind, dass die Kommunikation mit dieser Quelle niemals durch Angriffe gefährdet ist, können Sie den Wert auf true setzen, um die Warnung zu unterdrücken. Unterstützt in NuGet 6.8+.

Beispiel:

<packageSources>
    <clear />    
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="Contoso" value="https://contoso.com/packages/" />
    <add key="http-source" value="http://httpsourcetrusted/" allowInsecureConnections="true" />
    <add key="Test Source" value="c:\packages" />
</packageSources>

Hinweis

Wenn Sie die CLI verwenden, können Sie eine RestoreSources MSBuild-Eigenschaft oder --source(.NET CLI) | -Source(NuGet CLI) ausdrücken, um die in der NuGet.config definierte Eigenschaft <packageSources> außer Kraft zu setzen.

Tipp

Wenn <clear /> für einen bestimmten Knoten vorhanden ist, ignoriert NuGet die zuvor definierten Konfigurationswerte für diesen Knoten. Erfahren Sie mehr darüber, wie Einstellungen angewendet werden.

packageSourceCredentials

Speichert Benutzernamen und Kennwörter für Quellen, die in der Regel mit den -username- und -password-Switches mit nuget sources angegeben werden. Kennwörter werden standardmäßig verschlüsselt, sofern die Option -storepasswordincleartext nicht ebenfalls verwendet wird. Optional können gültige Authentifizierungstypen mit dem -validauthenticationtypes ERSTERWERT angegeben werden.

Schlüssel Wert
username Der Benutzername für die Quelle in Nur-Text. Hinweis: Umgebungsvariablen können zur Verbesserung der Sicherheit verwendet werden.
Kennwort Das verschlüsselte Kennwort für die Quelle. Verschlüsselte Kennwörter werden nur unter Windows unterstützt und können nur entschlüsselt werden, wenn sie auf demselben Computer und über denselben Benutzer wie die ursprüngliche Verschlüsselung verwendet werden.
cleartextpassword Das unverschlüsselte Kennwort für die Quelle. Hinweis: Umgebungsvariablen können zur Verbesserung der Sicherheit verwendet werden.
validauthenticationtypes Durch Trennzeichen getrennte Liste mit gültigen Authentifizierungstypen für diese Quelle. Legen Sie diese Option auf basic fest, wenn der Server NTLM oder eine Aushandlung ankündigt und Ihre Anmeldedaten über den Basismechanismus gesendet werden müssen, z. B. bei Verwendung eines persönlichen Zugriffstokens (PAT) mit einer lokalen Azure DevOps Server-Instanz. Andere gültige Werte sind negotiate, kerberos, ntlm und digest, aber diese Werte sind wahrscheinlich nicht sinnvoll.

Warnung

Vom Speichern von Passwörtern in Klartext wird dringend abgeraten. Bitte beachten Sie, dass verschlüsselte Passwörter nur in Windows unterstützt werden. Außerde, können sie nur entschlüsselt werden, wenn sie auf demselben Computer und vom selben Benutzer verwendet werden, der sie ursprünglich verschlüsselt hat. Weitere Informationen zum sicheren Verwalten von Anmeldedaten finden Sie in den bewährten Sicherheitsmethoden für die Nutzung von Paketen aus privaten Feeds.

Tipp

Wenn ein nicht verschlüsseltes Passwort für password übergeben wird, erscheint die Fehlermeldung Der Parameter ist falsch.

Beispiel:

In der Konfigurationsdatei enthält das <packageSourceCredentials>-Element für jeden anwendbaren Quellennamen untergeordnete Knoten (Leerzeichen im Namen werden durch _x0020_ ersetzt). Das heißt, die Konfigurationsdatei enthält für Quellen mit dem Namen „Contoso“ und „Testquelle“ bei der Verwendung verschlüsselter Kennwörter Folgendes:

<packageSourceCredentials>
    <Contoso>
        <add key="Username" value="user@contoso.com" />
        <add key="Password" value="..." />
    </Contoso>
    <Test_x0020_Source>
        <add key="Username" value="user" />
        <add key="Password" value="..." />
    </Test_x0020_Source>
</packageSourceCredentials>

Darüber hinaus können gültige Authentifizierungsmethoden bereitgestellt werden.

<packageSourceCredentials>
    <Contoso>
        <add key="Username" value="user@contoso.com" />
        <add key="Password" value="..." />
        <add key="ValidAuthenticationTypes" value="basic" />
    </Contoso>
    <Test_x0020_Source>
        <add key="Username" value="user" />
        <add key="Password" value="..." />
        <add key="ValidAuthenticationTypes" value="basic, negotiate" />
    </Test_x0020_Source>
</packageSourceCredentials>

Bei Verwendung unverschlüsselter Passwörter, die in einer Umgebungsvariable gespeichert sind:

<packageSourceCredentials>
    <Contoso>
        <add key="Username" value="user@contoso.com" />
        <add key="ClearTextPassword" value="%ContosoPassword%" />
    </Contoso>
    <Test_x0020_Source>
        <add key="Username" value="user" />
        <add key="ClearTextPassword" value="%TestSourcePassword%" />
    </Test_x0020_Source>
</packageSourceCredentials>

Bei der Verwendung unverschlüsselter Kennwörter:

Warnung

Vom Speichern von Passwörtern in Klartext wird dringend abgeraten.

<packageSourceCredentials>
    <Contoso>
        <add key="Username" value="user@contoso.com" />
        <add key="ClearTextPassword" value="33f!!lloppa" />
    </Contoso>
    <Test_x0020_Source>
        <add key="Username" value="user" />
        <add key="ClearTextPassword" value="hal+9ooo_da!sY" />
    </Test_x0020_Source>
</packageSourceCredentials>

apikeys

Speichert Schlüssel für Quellen, die die API-Schlüsselauthentifizierung verwenden, wie diese mit dem nuget setapikey-Befehl festgelegt wurden.

Schlüssel Wert
(Quell-URL) Der verschlüsselte API-Schlüssel.

Beispiel:

<apikeys>
    <add key="https://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
</apikeys>

disabledPackageSources

Identifizierte, derzeit deaktivierte Quellen. Kann leer sein. Sofern in diesem Abschnitt keine bestimmten Quellen deaktiviert sind, sind sie aktiviert.

Schlüssel Wert
(Name der Quelle) Ein boolescher Wert, der angibt, ob die Quelle deaktiviert ist.

Beispiel:

<disabledPackageSources>
    <add key="Contoso" value="true" />
</disabledPackageSources>

<!-- Empty list -->
<disabledPackageSources />

Im obigen Beispiel ist die Paketquelle Contoso deaktiviert und wird nicht zum Herunterladen oder Installieren von Paketen verwendet.

activePackageSource

(nur 2.x; Unterstützung in 3.x und höher eingestellt)

Identifiziert die derzeit aktive Quelle oder gibt das Aggregat aller Quellen an.

Schlüssel Wert
(Name der Quelle) oder All Wenn es sich bei dem Schlüssel um den Namen einer Quelle handelt, ist der Wert der Quellpfad oder die URL. Wenn All festgelegt ist, sollte der Wert (Aggregate source) lauten, damit alle Paketquellen kombiniert werden können, die nicht auf andere Weise deaktiviert sind.

Beispiel:

<activePackageSource>
    <!-- Only one active source-->
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />

    <!-- All non-disabled sources are active -->
    <add key="All" value="(Aggregate source)" />
</activePackageSource>

Abschnitt trustedSigners

Speichert vertrauenswürdige Signer*in, die zum Zulassen des Pakets beim Installieren oder Wiederherstellen verwendet werden. Diese Liste kann nicht leer sein, wenn der Benutzer signatureValidationMode auf require setzt.

Dieser Abschnitt kann mit dem nuget trusted-signers Befehl aktualisiert werden.

Schema:

Ein vertrauenswürdiger Signer*in verfügt über eine Sammlung von certificate Elementen, die alle Zertifikate auflisten, die einen bestimmten Signer*in identifizieren. Ein vertrauenswürdiger Signer*in kann entweder ein Author oder ein Repository sein.

Ein vertrauenswürdiges Repository gibt auch das serviceIndex Repository an (das ein gültiger https URI sein muss) und kann optional eine durch Semikolons getrennte Liste angeben, um owners noch mehr einzuschränken, wer von diesem bestimmten Repository vertrauenswürdig ist.

Die unterstützten Hashalgorithmen, die für einen Zertifikatfingerabdruck verwendet werden, sind SHA256, SHA384 und SHA512.

Wenn ein certificate angibt, dass allowUntrustedRoot als true das angegebene Zertifikat beim Aufbau der Zertifikatskette als Teil der Signaturprüfung mit einer nicht vertrauenswürdigen Wurzel verknüpft werden darf.

Beispiel:

<trustedSigners>
    <author name="microsoft">
        <certificate fingerprint="3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
        <certificate fingerprint="AA12DA22A49BCE7D5C1AE64CC1F3D892F150DA76140F210ABD2CBFFCA2C18A27" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
        <certificate fingerprint="566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
    </author>
    <repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
        <certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B46760709CBEEC6F4219AA6157D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
        <certificate fingerprint="5A2901D6ADA3D18260B9C6DFE2133C95D74B9EEF6AE0E5DC334C8454D1477DF4" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
        <owners>microsoft;aspnet;nuget</owners>
    </repository>
</trustedSigners>

FallbackPackageFolders-Abschnitt

(3,5+) Bietet eine Möglichkeit zum Vorabinstallieren von Paketen, damit keine Arbeit ausgeführt werden muss, wenn das Paket in den Fallbackordnern gefunden wird. Fallbackpaketordner haben genau dieselbe Ordner- und Dateistruktur wie der globale Paketordner: .nupkg ist vorhanden und alle Dateien werden extrahiert.

Die VERWEIS Logik für diese Konfiguration lautet:

  • Suchen Sie im globalen Paketordner, um festzustellen, ob das Paket/die Version bereits heruntergeladen wurde.

  • Suchen Sie in den Fallbackordnern nach einer Paket-/Versions-Zuordnung.

Wenn ein VERWEIS erfolgreich ist, ist kein Download erforderlich.

Wenn eine Zuordnung nicht gefunden wird, überprüft NuGet Dateiquellen und dann HTTP-Quellen und lädt dann die Pakete herunter.

Schlüssel Wert
(Name des Fallbackordners) Pfad zum Fallbackordner.

Beispiel:

<fallbackPackageFolders>
   <add key="XYZ Offline Packages" value="C:\somePath\someFolder\"/>
</fallbackPackageFolders>

Paketquellenzuordnung Abschnitt

Der packageSourceMapping Abschnitt enthält die Details, die den NuGet-Paketvorgängen helfen, zu bestimmen, von wo eine Paket-ID heruntergeladen werden soll.

Dieser Abschnitt kann derzeit nur manuell verwaltet werden.

Ein packageSourceMapping Abschnitt kann nur packageSource Abschnitte enthalten.

packageSource

Ein Unterabschnitt des packageSourceMapping Abschnitts. Enthält eine Zuordnung, mit der NuGet bestimmen kann, ob die Quelle zum Herunterladen des interessanten Pakets berücksichtigt werden soll.

Schlüssel
Name einer im packageSources Abschnitt deklarierten Paketquelle. Der Schlüssel muss exakt mit dem Schlüssel der Paketquelle übereinstimmen.

Die packageSource Abschnitte unter packageSourceMapping werden durch die key eindeutig bezeichnet.

package

Der package Abschnitt ist Teil des packageSource Abschnitts.

Muster
Ein Muster, das durch die Syntax der Paketquellzuordnung definiert ist.

Beispiel:

<packageSourceMapping>
  <packageSource key="contoso.com">
    <package pattern="Contoso.*" />
  </packageSource>
</packageSourceMapping>

PackageManagement-Abschnitt

Legt das Standardmäßige Paketverwaltungsformat fest, entweder packages.config oder PackageReference. SDK-Stilprojekte verwenden immer PackageReference.

Schlüssel Wert
format Ein boole’scher Wert, der das Standardpaketverwaltungsformat angibt. Wenn 1, ist das Format PackageReference. Wenn 0, ist das Format packages.config.
deaktiviert Ein boole’scher Wert, der angibt, ob die Eingabeaufforderung zum Auswählen eines Standardpaketformats bei der ersten Paketinstallation angezeigt werden soll. False blendet die Eingabeaufforderung aus.

Beispiel:

<packageManagement>
   <add key="format" value="1" />
   <add key="disabled" value="False" />
</packageManagement>

Tipp

Wenn <clear /> für einen bestimmten Knoten vorhanden ist, ignoriert NuGet die zuvor definierten Konfigurationswerte für diesen Knoten. Erfahren Sie mehr darüber, wie Einstellungen angewendet werden.

Verwenden von Umgebungsvariablen

Sie können Umgebungsvariablen in nuget.config-Werten (NuGet 3.4 und höher) verwenden, um Einstellungen zur Laufzeit anzuwenden.

Wenn die Umgebungsvariable HOME unter Windows beispielsweise auf c:\users\username festgelegt ist, wird der Wert von %HOME%\NuGetRepository in der Konfigurationsdatei in c:\users\username\NuGetRepository aufgelöst.

Beachten Sie, dass Sie Umgebungsvariablen im Windows-Stil verwenden müssen (beginnt und endet mit %) auch auf Mac/Linux. Das Vorhandensein von $HOME/NuGetRepository in einer Konfigurationsdatei wird nicht aufgelöst. Auf Mac/Linux wird der Wert der %HOME%/NuGetRepository aufgelöst in /home/myStuff/NuGetRepository.

Wenn eine Umgebungsvariable nicht gefunden werden kann, verwendet NuGet den Literalwert aus der Konfigurationsdatei. Beispiel: %MY_UNDEFINED_VAR%/NuGetRepository wird als path/to/current_working_dir/$MY_UNDEFINED_VAR/NuGetRepository aufgelöst

Die folgende Tabelle zeigt die Syntax der Umgebungsvariablen und Pfadtrennzeichenunterstützung für NuGet.Config-Dateien.

NuGet.Config Unterstützung von Umgebungsvariablen

Syntax Dir-Trennlinie Windows nuget.exe Windows dotnet.exe Mac nuget.exe (in Mono) Mac dotnet.exe
%MY_VAR% / Ja Ja Ja Ja
%MY_VAR% \ Ja Ja Nr. Nr.
$MY_VAR / Nr. Nr. Nr. Nr.
$MY_VAR \ Nr. Nr. Nr. No

Beispielkonfigurationsdatei

Nachfolgend finden Sie eine nuget.config Beispieldatei, die eine Reihe von Einstellungen, darunter auch optionale, veranschaulicht:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <config>
        <!--
            Used to specify the default location to expand packages.
            See: nuget.exe help install
            See: nuget.exe help update

            In this example, %PACKAGEHOME% is an environment variable.
            This syntax works on Windows/Mac/Linux
        -->
        <add key="repositoryPath" value="%PACKAGEHOME%/External" />

        <!--
            Used to specify default source for the push command.
            See: nuget.exe help push
        -->

        <add key="defaultPushSource" value="https://MyRepo/ES/api/v2/package" />

        <!-- Proxy settings -->
        <add key="http_proxy" value="host" />
        <add key="http_proxy.user" value="username" />
        <add key="http_proxy.password" value="encrypted_password" />
    </config>

    <packageRestore>
        <!-- Allow NuGet to download missing packages -->
        <add key="enabled" value="True" />

        <!-- Automatically check for missing packages during build in Visual Studio -->
        <add key="automatic" value="True" />
    </packageRestore>

    <!--
        Used to specify the default Sources for list, install and update.
        See: nuget.exe help list
        See: nuget.exe help install
        See: nuget.exe help update
    -->
    <packageSources>
        <clear />
        <add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
        <add key="MyRepo - ES" value="https://MyRepo/ES/nuget" />
    </packageSources>

    <!-- Used to store credentials -->
    <packageSourceCredentials />

    <!-- Used to disable package sources  -->
    <disabledPackageSources />

    <!--
        Used to specify default API key associated with sources.
        See: nuget.exe help setApiKey
        See: nuget.exe help push
        See: nuget.exe help mirror
    -->
    <apikeys>
        <add key="https://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
    </apikeys>

    <!--
        Used to specify trusted signers to allow during signature verification.
        See: nuget.exe help trusted-signers
    -->
    <trustedSigners>
        <author name="microsoft">
            <certificate fingerprint="3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
            <certificate fingerprint="AA12DA22A49BCE7D5C1AE64CC1F3D892F150DA76140F210ABD2CBFFCA2C18A27" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
            <certificate fingerprint="566A31882BE208BE4422F7CFD66ED09F5D4524A5994F50CCC8B05EC0528C1353" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
        </author>
        <repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
            <certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B46760709CBEEC6F4219AA6157D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
            <certificate fingerprint="5A2901D6ADA3D18260B9C6DFE2133C95D74B9EEF6AE0E5DC334C8454D1477DF4" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
            <owners>microsoft;aspnet;nuget</owners>
        </repository>
    </trustedSigners>
</configuration>