Megosztás a következőn keresztül:


nuget.config utalás

A NuGet viselkedését különböző NuGet.Config vagy nuget.config fájlok beállításai vezérlik a Közös NuGet-konfigurációkban leírtak szerint.

nuget.config egy legfelső szintű <configuration> csomópontot tartalmazó XML-fájl, amely a jelen témakörben ismertetett szakaszelemeket tartalmazza. Minden szakasz nulla vagy több elemet tartalmaz. Lásd a példák konfigurációs fájl. A beállításnevek nem érzékenyek a kis- és nagybetűkre, az értékek pedig környezeti változókat használhatnak.

Jótanács

Adjon hozzá egy nuget.config fájlt a projektadattár gyökeréhez. Ez ajánlott eljárásnak számít, mivel elősegíti az ismételhetőséget, és biztosítja, hogy a különböző felhasználók ugyanazt a NuGet-konfigurációt használják. Előfordulhat, hogy az elemeket úgy kell konfigurálnia clear , hogy ne alkalmazzanak felhasználó- vagy gépspecifikus konfigurációt. További információ a beállítások alkalmazásáról.

konfigurációs szakasz

Különböző konfigurációs beállításokat tartalmaz, amelyek a nuget config parancs használatával állíthatók be.

dependencyVersion és repositoryPath csak azokat a projekteket alkalmazza, amelyeket használ packages.config. globalPackagesFolder csak a PackageReference formátumot használó projektekre vonatkozik.

Key Érték
defaultPushSource Azonosítja annak a csomagforrásnak az URL-címét vagy elérési útját, amelyet alapértelmezettként kell használni, ha más csomagforrás nem található egy művelethez.
dependencyVersion (packages.config csak) A csomag telepítésének, visszaállításának és frissítésének alapértelmezett DependencyVersion értéke, ha a -DependencyVersion kapcsoló nincs megadva közvetlenül. Ezt az értéket a NuGet Package Manager felhasználói felülete is használja. Az értékek a következőkLowest: , HighestPatch, HighestMinorHighest.
globalPackagesFolder Az alapértelmezett globális csomagok mappa helye. Az alapértelmezett érték %userprofile%\.nuget\packages (Windows) vagy ~/.nuget/packages (Mac/Linux). A relatív elérési út projektspecifikus nuget.config fájlokban is használható. Ezt a beállítást felülírja a NUGET_PACKAGES környezeti változó, amely elsőbbséget élvez.
http_proxy http_proxy.user http_proxy.password no_proxy A csomagforrásokhoz való csatlakozáskor használandó proxybeállítások; http_proxy formátumnak http://<username>:<password>@<domain>kell lennie. A jelszavak titkosítva vannak, és nem adhatók hozzá manuálisan. Az no_proxyérték azoknak a tartományoknak a vesszővel tagolt listája, amelyek megkerülik a proxykiszolgálót. A http_proxy és no_proxy környezeti változókat is használhatja ezekhez az értékekhez. További részletekért lásd: NuGet-proxybeállítások (skolima.blogspot.com).
maxHttpRequestsPerSource Szabályozza a NuGettől az összes csomagforrásnak küldött párhuzamos kérések maximális számát a csomagfüggőség feloldásához és letöltéséhez. Az alapértelmezett érték dotnet.exe a Int32.MaxValue tulajdonságból HttpClientHandler.MaxConnectionsPerServer származik. Ez a beállítás nincs hatással, dotnet.exeMac OS mert a szabályozási korlát úgy van beállítva, hogy 16 elkerülje a túl sok megnyitott fájlhibát. Az alapértelmezett érték NuGet client tools például be Visual Studio.NET Framework van kapcsolva Windows és nuget.exe1 be van 64 kapcsolvaMono. A stílusprojektek Packages.config alapértelmezett értéke a következő.Environment.ProcessorCount maxHttpRequestsPerSource Ha a tulajdonságot az alapértelmezettnél kisebb értékre konfigurálja, az hatással lehet a NuGet teljesítményére.
repositoryPath (packages.config csak) A NuGet-csomagok telepítésének helye az alapértelmezett $(Solutiondir)/packages mappa helyett. A relatív elérési út projektspecifikus nuget.config fájlokban is használható.
signatureValidationMode Megadja a csomagtelepítés és -visszaállítás csomagaadékainak ellenőrzéséhez használt érvényesítési módot. Az értékek a következőkaccept: . require Alapértelmezett érték: accept.
updatePackageLastAccessTime Ha be van trueállítva, a visszaállítás a visszaállítás során frissíti a .nupkg.metadata fájl utolsó hozzáférési idejét a globális csomagok mappájában. További információkért tekintse meg a globális csomagok mappájának dokumentációját

Példa:

<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" />
    <add key="updatePackageLastAccessTime" value="false" />
</config>

bindingRedirects szakasz

Konfigurálja, hogy a NuGet automatikus kötésátirányítást végez-e egy csomag telepítésekor.

Key Érték
kihagy Logikai érték, amely jelzi, hogy kihagyja-e az automatikus kötési átirányításokat. Az alapértelmezett érték hamis.

Példa:

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

packageRestore szakasz

Szabályozza a csomagok visszaállítását a buildek során.

Key Érték
enabled Logikai érték, amely jelzi, hogy a NuGet képes-e automatikus visszaállításra. A környezeti változót EnableNuGetPackageRestore úgy is beállíthatja True , hogy ne a konfigurációs fájlban állítsa be ezt a kulcsot.
automatikus Logikai érték, amely azt jelzi, hogy a NuGetnek ellenőriznie kell-e a hiányzó csomagokat a buildelés során.

Példa:

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

megoldás szakasz

Azt szabályozza, hogy a packages megoldás mappája szerepel-e a forrásvezérlőben. Ez a szakasz csak a megoldásmappában lévő fájlokban nuget.config működik.

Key Érték
disableSourceControlIntegration Logikai érték, amely azt jelzi, hogy a forrásvezérlő használatakor figyelmen kívül kell-e hagyni a csomagok mappát. Az alapértelmezett érték hamis.

Példa:

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

Csomag forrásszakaszai

A packageSources, packageSourceCredentials, apikeys, , disabledPackageSourcesactivePackageSourceés packageSourceMapping mind együtt dolgoznak annak konfigurálásához, trustedSigners hogy a NuGet hogyan működik a csomagtárakkal a telepítési, visszaállítási és frissítési műveletek során.

A nuget sources parancsot általában a beállítások kezelésére használják, kivéve apikeys azt, amely a nuget setapikey parancs használatával van kezelve, és trustedSigners amelyet a nuget trusted-signers parancs használatával kezelnek.

Vegye figyelembe, hogy a nuget.org forrás URL-címe .https://api.nuget.org/v3/index.json

packageSources

Felsorolja az összes ismert csomagforrást. A rendszer figyelmen kívül hagyja a sorrendet a visszaállítási műveletek során, valamint a PackageReference formátumot használó projekteknél. A NuGet tiszteletben tartja a források sorrendjét a projektek packages.confighasználatával végzett telepítési és frissítési műveletekhez.

XML-attribútum Cél
Key (a csomag forrásához rendelendő név)
Érték A csomag forrásának elérési útja vagy URL-címe.
protocolVersion A használni kívánt NuGet-kiszolgáló protokollverziója. Az aktuális verzió a "3". Alapértelmezés szerint a "2" verzióra mutat, ha nem a csomag forrás URL-címére .json mutat( pl. https://api.nuget.org/v3/index.json). A NuGet 3.0+-ban támogatott. A 3- es verziójú protokollról további információt a NuGet Server API-val kapcsolatban talál.
allowInsecureConnections Ha hamis vagy nincs megadva, a NuGet figyelmeztetést küld, ha a forrás http-t használ https helyett. Ha biztos abban, hogy az ezzel a forrással folytatott kommunikáció soha nem lesz kitéve elfogási támadásoknak, beállíthatja az értéket igaz értékre, hogy elnyomja a figyelmeztetést. A NuGet 6.8+-ban támogatott.
disableTLSCertificateValidation Ez a konfigurációs tulajdonság lehetővé teszi az SSL/TLS-tanúsítványok érvényesítésének letiltását a HTTPS-kiszolgálón. Ha igaz értékre van állítva, a kiszolgáló figyelmen kívül hagyja az SSL-/TLS-tanúsítványokkal kapcsolatos hibákat, például lejárt vagy önaláírt tanúsítványokat, és érvényesítés nélkül hozza létre a kapcsolatot. A NuGet 6.11+-ban támogatott.

Példa:

<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="Invalid-certificate-https-source" value="https://httpsSourceTrusted/" disableTLSCertificateValidation="true" />
    <add key="Test Source" value="c:\packages" />
</packageSources>

Megjegyzés:

Megbízható csomagforrásokat használjon.

Megjegyzés:

A parancssori felület használatakor kifejezhet egy RestoreSources MSBuild tulajdonságot vagy --sourceegy (.NET CLI) | -Source(NuGet CLI) tulajdonságot a <packageSources> NuGet.configdefiniált felülbírálásához.

Jótanács

Ha <clear /> egy adott csomópont jelen van, a NuGet figyelmen kívül hagyja az adott csomóponthoz korábban definiált konfigurációs értékeket. További információ a beállítások alkalmazásáról.

auditSources

Felsorolja az összes ismert naplózási forrást, amelyeket a NuGet-naplózás a visszaállítás során használni fog. Ha nincs megadva naplózási forrás, a visszaállítás csomagforrásokat használ, és letiltja a NU1905-öt. auditSources a NuGet 6.12-hez lett hozzáadva.

A naplózási források ugyanazokat az attribútumokat támogatják, mint packageSources a (protocolVersion), allowInsecureConnectionsés a hitelesítést igénylő források ugyanúgy vannak konfigurálva packageSourceCredentials, mint packageSourcesa .

Példa:

<auditSources>
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</auditSources>

packageSourceCredentials

A forrásokhoz tartozó felhasználóneveket és jelszavakat tárolja, amelyek általában a -username következővel vannak megadva, és -password a következővel váltanak nuget sources: . A jelszavak alapértelmezés szerint titkosítva vannak, kivéve, ha ezt a -storepasswordincleartext beállítást is használják. A kapcsolóval -validauthenticationtypes érvényes hitelesítési típusok is megadhatóak.

Key Érték
felhasználónév A forrás felhasználóneve egyszerű szövegben. Megjegyzés: a környezeti változók a nagyobb biztonság érdekében használhatók.
jelszó A forrás titkosított jelszava. A titkosított jelszavak csak Windows rendszeren támogatottak, és csak akkor fejthetők vissza, ha ugyanazon a gépen és ugyanazon a felhasználón keresztül használják, mint az eredeti titkosítást.
cleartextpassword A forrás titkosítatlan jelszava. Megjegyzés: a környezeti változók a nagyobb biztonság érdekében használhatók.
validauthenticationtypes A forrás érvényes hitelesítési típusainak vesszővel tagolt listája. Ezt akkor állítsa be, basic ha a kiszolgáló NTLM-et vagy Egyeztetést hirdet, és a hitelesítő adatait az Alapszintű mechanizmussal kell elküldeni, például akkor, ha patot használ a helyszíni Azure DevOps Serverrel. Az egyéb érvényes értékek közé tartozik a negotiate, kerberos, ntlmés digest, de ezek az értékek nem valószínű, hogy hasznosak.

Figyelmeztetés

A jelszavak tiszta szövegben való tárolása erősen elriasztja a felhasználókat. Vegye figyelembe, hogy a titkosított jelszavak csak Windows rendszeren támogatottak. Ezenkívül csak akkor fejthetők vissza, ha ugyanazon a gépen és ugyanazon a felhasználón használják őket, aki eredetileg titkosította őket. A hitelesítő adatok biztonságos kezelésével kapcsolatos további információkért tekintse meg a csomagok magáncsatornákból való felhasználásának ajánlott biztonsági eljárásait.

Jótanács

Ha nem titkosított jelszót ad át password a "A paraméter helytelen" hibaüzenet jelenik meg.

Example:

A konfigurációs fájlban az <packageSourceCredentials> elem gyermekcsomópontokat tartalmaz minden alkalmazható forrásnévhez (a névben lévő szóközök _x0020_helyébe a rendszer lép). Vagyis a "Contoso" és a "Tesztforrás" nevű források esetében a konfigurációs fájl a következőket tartalmazza titkosított jelszavak használatakor:

<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>

Emellett érvényes hitelesítési módszerek is megadhatóak.

<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>

Egy környezeti változóban tárolt titkosítatlan jelszavak használatakor:

<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>

Titkosítatlan jelszavak használata esetén:

Figyelmeztetés

A jelszavak tiszta szövegben való tárolása erősen elriasztja a felhasználókat.

<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

Az API-kulcshitelesítést használó források kulcsait a nuget setapikey parancsnak megfelelően tárolja.

Key Érték
(forrás URL-címe) A titkosított API-kulcs.

Példa:

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

disabledPackageSources

Azonosította a jelenleg letiltott forrásokat. Lehet, hogy üres. Ha ebben a szakaszban bizonyos források le vannak tiltva, azok engedélyezve vannak.

Key Érték
(forrás neve) Logikai érték, amely jelzi, hogy a forrás le van-e tiltva.

Example:

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

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

A fenti példában a csomag forrása Contoso le van tiltva, és nem használható csomagok letöltésére vagy telepítésére.

activePackageSource

(csak 2.x; 3.x+-ban elavult)

Azonosítja az aktuálisan aktív forrást, vagy az összes forrás összesítését jelzi.

Key Érték
(forrás neve) vagy All Ha a kulcs egy forrás neve, az érték a forrás elérési útja vagy URL-címe. Ha Alla beállítás értéke az összes olyan csomagforrás kombinálása, (Aggregate source) amely egyébként nincs letiltva.

Példa:

<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>

trustedSigners szakasz

Tárolja a megbízható aláírókat, amelyek lehetővé teszik a csomag telepítését vagy visszaállítását. Ez a lista nem lehet üres, ha a felhasználó be van adva signatureValidationModerequire.

Ez a szakasz a paranccsal frissíthetőnuget trusted-signers.

Séma:

A megbízható aláírók olyan elemek gyűjteményével certificate rendelkeznek, amelyek az adott aláírót azonosító összes tanúsítványt tartalmazzák. A megbízható aláíró lehet egy Author vagy egy Repository.

A megbízható adattár meghatározza az serviceIndex adattárat is (amelynek érvényes https uri-nak kell lennie), és megadhat egy pontosvesszővel tagolt listát owners , amely még jobban korlátozza az adott adattárban megbízhatók körét.

A tanúsítvány ujjlenyomatához használt támogatott kivonatoló algoritmusok a következőkSHA256SHA384: és SHA512.

Ha a certificate megadott tanúsítvány azt adja meg allowUntrustedRoottrue , hogy az adott tanúsítvány az aláírás-ellenőrzés részeként a tanúsítványlánc létrehozásakor egy nem megbízható gyökerhez láncolt.

Példa:

<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" />
        <certificate fingerprint="1F4B311D9ACC115C8DC8018B5A49E00FCE6DA8E2855F9F014CA6F34570BC482D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />        
        <owners>microsoft;aspnet;nuget</owners>
    </repository>
</trustedSigners>

fallbackPackageFolders szakasz

(3,5+) Lehetővé teszi a csomagok előtelepítését, hogy ne kelljen munkát végezni, ha a csomag megtalálható a tartalék mappákban. A tartalékcsomag-mappák pontosan ugyanazzal a mappával és fájlstruktúrával rendelkeznek, mint a globális csomagmappában: a .nupkg jelen van, és az összes fájl ki lesz nyerve.

A konfiguráció keresési logikája a következő:

  • A globális csomagmappában megnézheti, hogy a csomag/verzió már le van-e töltve.

  • Keresse meg a tartalék mappákban egy csomag/verzió egyezését.

Ha bármelyik keresés sikeres, akkor nincs szükség letöltésre.

Ha nem található egyezés, akkor a NuGet ellenőrzi a fájlforrásokat, majd a HTTP-forrásokat, majd letölti a csomagokat.

Key Érték
(tartalék mappa neve) A tartalék mappa elérési útja.

Példa:

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

Csomagforrás-leképezési szakasz

A packageSourceMapping szakasz azokat a részleteket tartalmazza, amelyek segítenek a NuGet-csomagműveletek számára annak meghatározásában, hogy honnan kell letölteni a csomagazonosítót.

Ez a szakasz jelenleg csak manuálisan kezelhető.

A packageSourceMapping szakaszok csak szakaszokat tartalmazhatnak packageSource .

csomagforrás

A szakasz egy alszakasza packageSourceMapping . Egy leképezést tartalmaz, amely segít a NuGetnek meghatározni, hogy a forrást figyelembe kell-e venni a hasznos csomag letöltéséhez.

Key
A szakaszban deklarált packageSources csomagforrás neve. A kulcsnak pontosan meg kell egyeznie a csomag forrásának kulcsával.

Az packageSource alatta lévő packageSourceMapping szakaszok egyedileg vannak azonosítva a key.

csomag

Ez package a packageSource szakasz része.

Pattern
A Csomagforrás-leképezés szintaxisa által meghatározott minta.

Példa:

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

packageManagement szakasz

Beállítja az alapértelmezett csomagkezelési formátumot packages.configvagy PackageReference értékre. Az SDK-stílusú projektek mindig a PackageReference-t használják.

Key Érték
format Az alapértelmezett csomagkezelési formátumot jelző logikai érték. Ha 1a formátum PackageReference. Ha 0a formátum packages.config.
halványított Logikai érték, amely jelzi, hogy megjelenjen-e a kérés az alapértelmezett csomagformátum kiválasztásához az első csomag telepítésekor. False elrejti a kérést.

Példa:

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

Jótanács

Ha <clear /> egy adott csomópont jelen van, a NuGet figyelmen kívül hagyja az adott csomóponthoz korábban definiált konfigurációs értékeket. További információ a beállítások alkalmazásáról.

Környezeti változók használata

A környezeti változók értékekben nuget.config (NuGet 3.4+) használhatók a beállítások futásidőben történő alkalmazásához.

Ha például a HOME Windows környezeti változója értékre van állítva c:\users\username, akkor a konfigurációs fájl értéke %HOME%\NuGetRepository a következő lesz c:\users\username\NuGetRepository.

Vegye figyelembe, hogy Windows-stílusú környezeti változókat kell használnia (%kezdődik és végződik) még Mac/Linux rendszeren is. A konfigurációs fájlban való használat $HOME/NuGetRepository nem oldható fel. Mac/Linux rendszeren a rendszer feloldja %HOME%/NuGetRepository a feloldás /home/myStuff/NuGetRepositoryértékét.

Ha nem található környezeti változó, a NuGet a konfigurációs fájl literálértékét használja. A rendszer például %MY_UNDEFINED_VAR%/NuGetRepository a következő módon oldja fel a problémát: path/to/current_working_dir/$MY_UNDEFINED_VAR/NuGetRepository

Az alábbi táblázat a NuGet.Config-fájlok környezetváltozóinak szintaxisát és elérésiút-elválasztó támogatását mutatja.

NuGet.Config környezeti változó támogatása

Szemantika Dir elválasztó Windows nuget.exe Windows dotnet.exe Mac nuget.exe (Mono nyelven) Mac dotnet.exe
%MY_VAR% / Igen Igen Igen Igen
%MY_VAR% \ Igen Igen Nem Nem
$MY_VAR / Nem Nem Nem Nem
$MY_VAR \ Nem Nem Nem Nem

Példa konfigurációs fájlra

Az alábbiakban egy példafájl nuget.config látható, amely számos beállítást szemléltet, beleértve a választható beállításokat is:

<?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 enforce that certain packages only come from specific package sources. -->
    <packageSourceMapping>
      <clear />
      <packageSource key="MyRepo - ES">
        <package pattern="ES.*" />
      </packageSource>
      <packageSource key="NuGet official package source">
        <package pattern="*" />
      </packageSource>
    </packageSourceMapping>

    <!-- 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" />
            <certificate fingerprint="1F4B311D9ACC115C8DC8018B5A49E00FCE6DA8E2855F9F014CA6F34570BC482D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
            <owners>microsoft;aspnet;nuget</owners>
        </repository>
    </trustedSigners>
</configuration>