Dela via


nuget.config hänvisning

NuGet-beteende styrs av inställningar i olika NuGet.Config filer eller nuget.config enligt beskrivningen i Vanliga NuGet-konfigurationer.

nuget.config är en XML-fil som innehåller en nod på den översta nivån <configuration> , som sedan innehåller avsnittselementen som beskrivs i det här avsnittet. Varje avsnitt innehåller noll eller fler objekt. Se exempelkonfigurationsfilen. Inställningsnamn är skiftlägeskänsliga och värden kan använda miljövariabler.

Tips/Råd

Lägg till en nuget.config fil i roten på projektlagringsplatsen. Detta anses vara en bästa praxis eftersom det främjar repeterbarhet och säkerställer att olika användare har samma NuGet-konfiguration. Du kan behöva konfigurera clear element för att säkerställa att ingen användar- eller datorspecifik konfiguration tillämpas. Läs mer om hur inställningar tillämpas.

Konfigurationsavsnitt

Innehåller diverse konfigurationsinställningar som kan ställas in med kommandotnuget config .

dependencyVersion och repositoryPath gäller endast för projekt som använder packages.config. globalPackagesFolder gäller endast för projekt som använder PackageReference-formatet.

Key Värde
defaultPushSource Identifierar URL:en eller sökvägen till den paketkälla som ska användas som standard om inga andra paketkällor hittas för en åtgärd.
dependencyVersion (packages.config endast) Standardvärdet DependencyVersion för paketinstallation, återställning och uppdatering när växeln -DependencyVersion inte anges direkt. Det här värdet används också av Användargränssnittet för NuGet Package Manager. Värdena är Lowest, HighestPatch, HighestMinor, Highest.
globalPackagesFolder Platsen för standardmappen globala paket. Standardvärdet är %userprofile%\.nuget\packages (Windows) eller ~/.nuget/packages (Mac/Linux). En relativ sökväg kan användas i projektspecifika nuget.config filer. Den här inställningen åsidosättas av NUGET_PACKAGES miljövariabeln, som har företräde.
http_proxy http_proxy.user http_proxy.password no_proxy Proxyinställningar som ska användas när du ansluter till paketkällor. http_proxy ska vara i formatet http://<username>:<password>@<domain>. Lösenord krypteras och kan inte läggas till manuellt. För no_proxyär värdet en kommaavgränsad lista över domäner som kringgår proxyservern. Du kan också använda miljövariablerna http_proxy och no_proxy för dessa värden. Mer information finns i NuGet-proxyinställningar (skolima.blogspot.com).
maxHttpRequestsPerSource Styr det maximala antalet parallella begäranden som skickas från NuGet till varje paketkälla för lösning och nedladdning av paketberoenden. Standardvärdet på dotnet.exe är Int32.MaxValue som härleds från HttpClientHandler.MaxConnectionsPerServer egenskapen. Den här inställningen påverkar dotnet.exe inte eftersom Mac OS begränsningsgränsen är inställd på för att 16 undvika för många öppna filer. Standardvärdet för NuGet client tools som körs på .NET Framework , till exempel Visual Studio och nuget.exe är 64Windows och 1Mono. Standardvärdet för Packages.config formatprojekt är inställt på Environment.ProcessorCount. Att maxHttpRequestsPerSource konfigurera egenskapen till ett värde som är mindre än standardvärdet kan påverka NuGet-prestanda.
repositoryPath (packages.config endast) Den plats där NuGet-paket ska installeras i stället för standardmappen $(Solutiondir)/packages . En relativ sökväg kan användas i projektspecifika nuget.config filer.
signatureValidationMode Anger det valideringsläge som används för att verifiera paketsignaturer för paketinstallation och återställning. Värdena är accept, require. Standardinställningen är accept.
updatePackageLastAccessTime När inställningen är inställd truepå uppdaterar återställningen den senaste åtkomsttiden för .nupkg.metadata filen i mappen globala paket under återställningen. Mer information finns i dokumentationen om mappen globala paket

Exempel:

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

Konfigurerar om NuGet gör automatiska bindningsomdirigeringar när ett paket installeras.

Key Värde
skip Ett booleskt värde som anger om du vill hoppa över automatiska bindningsomdirigeringar. Standardvärdet är falskt.

Exempel:

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

packageRestore-avsnittet

Styr paketåterställningen under byggen.

Key Värde
enabled Ett booleskt värde som anger om NuGet kan utföra automatisk återställning. Du kan också ange EnableNuGetPackageRestore miljövariabeln med värdet True i stället för att ange den här nyckeln i konfigurationsfilen.
automatiskt Ett booleskt värde som anger om NuGet ska söka efter paket som saknas under en version.

Exempel:

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

lösningsavsnitt

Styr om mappen för packages en lösning ingår i källkontrollen. Det här avsnittet fungerar endast i nuget.config filer i en lösningsmapp.

Key Värde
disableSourceControlIntegration Ett booleskt värde som anger om paketmappen ska ignoreras när du arbetar med källkontroll. Standardvärdet är falskt.

Exempel:

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

Paketkällans avsnitt

Alla packageSourcesdisabledPackageSourcespackageSourceMappingpackageSourceCredentialsapikeysactivePackageSourcetrustedSigners arbetar tillsammans för att konfigurera hur NuGet fungerar med paketlagringsplatser under installation, återställning och uppdatering.

Kommandotnuget sources används vanligtvis för att hantera de här inställningarna, förutom apikeys som hanteras med kommandotnuget setapikey och trustedSigners som hanteras med kommandotnuget trusted-signers .

Observera att käll-URL:en för nuget.org är https://api.nuget.org/v3/index.json.

packageSources

Visar en lista över alla kända paketkällor. Ordningen ignoreras under återställningsåtgärder och med alla projekt som använder PackageReference-formatet. NuGet respekterar ordningen på källor för installations- och uppdateringsåtgärder med projekt som använder packages.config.

XML-attribut Avsikt
Nyckel (namn att tilldela till paketkällan)
Value Sökvägen eller URL:en för paketkällan.
protocolVersion NuGet-serverprotokollversionen som ska användas. Den aktuella versionen är "3". Standardvärdet är version 2 när du inte pekar på en paketkäll-URL som slutar i .json (t.ex. https://api.nuget.org/v3/index.json). Stöds i NuGet 3.0+. Mer information om version 3-protokollet finns i NuGet Server API .
allowInsecureConnections När falskt, eller inte har angetts, genererar NuGet en varning när källan använder http, i stället för https. Om du är säker på att kommunikationen med den här källan aldrig riskerar avlyssningsattacker kan du ange värdet till true för att förhindra varningen. Stöds i NuGet 6.8+.
disableTLSCertificateValidation Med den här konfigurationsegenskapen kan du inaktivera SSL/TLS-certifikatverifiering för HTTPS-servern. När värdet är true ignorerar servern eventuella fel som rör SSL/TLS-certifikat, till exempel utgångna eller självsignerade certifikat, och upprättar anslutningen utan validering. Stöds i NuGet 6.11+.

Exempel:

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

Anmärkning

Använd paketkällor som du litar på.

Anmärkning

När du använder CLI kan du uttrycka en RestoreSources MSBuild-egenskap eller --source(.NET CLI) | -Source(NuGet CLI) för att åsidosätta den <packageSources> som definierats i NuGet.config.

Tips/Råd

När <clear /> finns för en viss nod ignorerar NuGet tidigare definierade konfigurationsvärden för den noden. Läs mer om hur inställningar tillämpas.

auditSources

Visar en lista över alla kända granskningskällor som NuGet-granskning kommer att använda under återställningen. Om inga granskningskällor tillhandahålls använder återställningen paketkällor och undertrycker NU1905. auditSources lades till i NuGet 6.12.

Granskningskällor stöder samma attribut som (, ) och källor som kräver autentisering konfigureras med packageSourceCredentials, på samma sätt som packageSources. allowInsecureConnectionsprotocolVersionpackageSources

Exempel:

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

packageSourceCredentials

Lagrar användarnamn och lösenord för källor, som vanligtvis anges med -username och -password växlar med nuget sources. Lösenord krypteras som standard om inte alternativet -storepasswordincleartext också används. Du kan också ange giltiga autentiseringstyper med växeln -validauthenticationtypes .

Key Värde
username Användarnamnet för källan i oformaterad text. Obs! Miljövariabler kan användas för förbättrad säkerhet.
lösenord Det krypterade lösenordet för källan. Krypterade lösenord stöds endast i Windows och kan endast dekrypteras när de används på samma dator och via samma användare som den ursprungliga krypteringen.
cleartextpassword Det okrypterade lösenordet för källan. Obs! Miljövariabler kan användas för förbättrad säkerhet.
validauthenticationtypes Kommaavgränsad lista över giltiga autentiseringstyper för den här källan. Ange detta om basic servern annonserar NTLM eller Negotiate och dina autentiseringsuppgifter måste skickas med hjälp av basic-mekanismen, till exempel när du använder en PAT med lokal Azure DevOps Server. Andra giltiga värden är negotiate, kerberos, ntlmoch digest, men dessa värden är osannolikt att vara användbara.

Varning

Det rekommenderas starkt att lagra lösenord i klartext. Observera att krypterade lösenord endast stöds i Windows. Dessutom kan de bara dekrypteras när de används på samma dator och av samma användare som ursprungligen krypterade dem. Mer information om hur du hanterar autentiseringsuppgifter på ett säkert sätt finns i rekommenderade säkerhetsmetoder för att använda paket från privata feeds.

Tips/Råd

Om ett icke-krypterat lösenord skickas för password felmeddelandet "Parametern är felaktig" inträffar.

Example:

I konfigurationsfilen innehåller elementet <packageSourceCredentials> underordnade noder för varje tillämpligt källnamn (blanksteg i namnet ersätts med _x0020_). För källor med namnet "Contoso" och "Test Source" innehåller konfigurationsfilen följande när krypterade lösenord används:

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

Dessutom kan giltiga autentiseringsmetoder anges.

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

När du använder okrypterade lösenord som lagras i en miljövariabel:

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

När du använder okrypterade lösenord:

Varning

Det rekommenderas starkt att lagra lösenord i klartext.

<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

Lagrar nycklar för källor som använder API-nyckelautentisering enligt nuget setapikey kommandot .

Key Värde
(käll-URL) Den krypterade API-nyckeln.

Exempel:

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

disabledPackageSources

Identifierade för närvarande inaktiverade källor. Kan vara tomt. Om inte specifika källor är inaktiverade i det här avsnittet är de aktiverade.

Key Värde
(källans namn) Ett booleskt värde som anger om källan är inaktiverad.

Example:

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

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

I exemplet ovan är paketkällan Contoso inaktiverad och används inte för att ladda ned eller installera paket.

activePackageSource

(endast 2.x; inaktuell i 3.x+)

Identifierar den aktuella aktiva källan eller anger summan av alla källor.

Key Värde
(källans namn) eller All Om nyckeln är namnet på en källa är värdet källsökvägen eller URL:en. Om Allska värdet vara (Aggregate source) att kombinera alla paketkällor som annars inte är inaktiverade.

Exempel:

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

avsnittet trustedSigners

Lagrar betrodda undertecknare som används för att tillåta paket vid installation eller återställning. Den här listan får inte vara tom när användaren anger signatureValidationMode till require.

Det här avsnittet kan uppdateras med nuget trusted-signers kommandot .

Schema:

En betrodd undertecknare har en samling certificate objekt som registrerar alla certifikat som identifierar en viss undertecknare. En betrodd undertecknare kan vara antingen en Author eller en Repository.

En betrodd lagringsplats anger serviceIndex också för lagringsplatsen (som måste vara en giltig https URI) och kan också ange en semikolonavgränsad lista över owners för att begränsa ännu fler som är betrodda från den specifika lagringsplatsen.

De hash-algoritmer som stöds som används för ett certifikats fingeravtryck är SHA256, SHA384 och SHA512.

Om en certificate anger som true det angivna certifikatet tillåts allowUntrustedRoot att länka till en obetrodd rot när certifikatkedjan skapas som en del av signaturverifieringen.

Exempel:

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

avsnittet fallbackPackageFolders

(3.5+) Ger ett sätt att förinstallera paket så att inget arbete behöver utföras om paketet hittas i reservmapparna. Reservpaketmappar har exakt samma mapp och filstruktur som den globala paketmappen: .nupkg finns och alla filer extraheras.

Uppslagslogik för den här konfigurationen är:

  • Titta i den globala paketmappen för att se om paketet/versionen redan har laddats ned.

  • Leta efter ett paket/en versionsmatchning i reservmapparna.

Om någon av sökningarna lyckas krävs ingen nedladdning.

Om en matchning inte hittas kontrollerar NuGet filkällor och sedan http-källor och laddar sedan ned paketen.

Key Värde
(namn på reservmapp) Sökväg till reservmappen.

Exempel:

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

Avsnittet paketkällamappning

Avsnittet packageSourceMapping innehåller information som hjälper NuGet-paketåtgärderna att avgöra var ett paket-ID ska laddas ned från.

Det här avsnittet kan bara hanteras manuellt just nu.

Ett packageSourceMapping avsnitt kan bara innehålla packageSource avsnitt.

packageSource

Ett underavsnitt i avsnittet packageSourceMapping . Innehåller en mappning som hjälper NuGet att avgöra om källan ska övervägas för att ladda ned paketet av intresse.

Key
Namnet på en paketkälla som deklarerats packageSources i avsnittet. Nyckeln måste exakt matcha nyckeln för paketkällan.

Avsnitten packageSource under packageSourceMapping identifieras unikt av key.

paket

package Är en del av avsnittetpackageSource.

Mönster
Ett mönster som definieras av syntaxen för paketkällans mappning.

Exempel:

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

packageManagement-avsnittet

Anger standardformatet för pakethantering, antingen packages.config eller PackageReference. SDK-projekt använder alltid PackageReference.

Key Värde
format Ett booleskt värde som anger standardformatet för pakethantering. Om 1är formatet PackageReference. Om 0är formatet packages.config.
funktionshindrad Ett booleskt värde som anger om du vill visa uppmaningen att välja ett standardpaketformat vid den första paketinstallationen. False döljer kommandotolken.

Exempel:

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

Tips/Råd

När <clear /> finns för en viss nod ignorerar NuGet tidigare definierade konfigurationsvärden för den noden. Läs mer om hur inställningar tillämpas.

Använda miljövariabler

Du kan använda miljövariabler i nuget.config värden (NuGet 3.4+) för att tillämpa inställningar vid körning.

Om HOME miljövariabeln i Windows till c:\users\usernameexempel är inställd på , så matchas värdet %HOME%\NuGetRepository för i konfigurationsfilen till c:\users\username\NuGetRepository.

Observera att du måste använda miljövariabler i Windows-stil (startar och slutar med %) även i Mac/Linux. Det går inte att lösa att ha $HOME/NuGetRepository i en konfigurationsfil. På Mac/Linux matchas %HOME%/NuGetRepository värdet för till /home/myStuff/NuGetRepository.

Om en miljövariabel inte hittas använder NuGet literalvärdet från konfigurationsfilen. Till exempel %MY_UNDEFINED_VAR%/NuGetRepository kommer att lösas som path/to/current_working_dir/$MY_UNDEFINED_VAR/NuGetRepository

Tabellen nedan visar stöd för miljövariabelsyntax och sökvägsavgränsare för NuGet.Config-filer.

NuGet.Config stöd för miljövariabler

Syntax Diravgränsare Windows nuget.exe Windows dotnet.exe Mac nuget.exe (i mono) Mac dotnet.exe
%MY_VAR% / Yes Yes Yes Yes
%MY_VAR% \ Yes Yes Nej Nej
$MY_VAR / Nej Nej Nej Nej
$MY_VAR \ Nej Nej Nej Nej

Exempel på konfigurationsfil

Nedan visas en exempelfil nuget.config som illustrerar ett antal inställningar, inklusive valfria:

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