nuget.config Odkaz

Chování NuGet se řídí nastavením v různých souborech nebo nuget.config v různých NuGet.Config souborech, jak je popsáno v běžných konfiguracích NuGet.

nuget.config je soubor XML obsahující uzel nejvyšší úrovně <configuration> , který pak obsahuje prvky oddílu popsané v tomto tématu. Každý oddíl obsahuje nula nebo více položek. Podívejte se na konfigurační soubor příkladů. Názvy nastavení nerozlišují malá a velká písmena a hodnoty můžou používat proměnné prostředí.

Tip

nuget.config Přidejte soubor do kořenového adresáře úložiště projektu. To je považováno za osvědčený postup, protože podporuje opakovatelnost a zajišťuje, že různí uživatelé mají stejnou konfiguraci NuGet. Možná budete muset nakonfigurovat clear prvky, aby se zajistilo, že se nepoužije žádná konfigurace specifická pro uživatele nebo počítač. Přečtěte si další informace o způsobu použití nastavení.

konfigurační oddíl

Obsahuje různá nastavení konfigurace, která lze nastavit pomocí nuget config příkazu.

dependencyVersion a repositoryPath vztahuje se pouze na projekty používající packages.config. globalPackagesFolder se vztahuje pouze na projekty používající formát PackageReference.

Klíč Hodnota
dependencyVersion (packages.config pouze) Výchozí DependencyVersion hodnota pro instalaci, obnovení a aktualizaci balíčku, pokud -DependencyVersion přepínač není zadán přímo. Tuto hodnotu používá také uživatelské rozhraní Správce balíčků NuGet. Hodnoty jsou Lowest, , HighestMinorHighestPatchHighest, .
globalPackagesFolder (projekty používající pouze PackageReference) Umístění výchozí globální složky balíčků Výchozí hodnota je %userprofile%\.nuget\packages (Windows) nebo ~/.nuget/packages (Mac/Linux). Relativní cestu lze použít v souborech specifických pro nuget.config projekt. Toto nastavení je přepsáno proměnnou NUGET_PACKAGES prostředí, která má přednost.
repositoryPath (packages.config pouze) Umístění, do kterého chcete nainstalovat balíčky NuGet místo výchozí $(Solutiondir)/packages složky. Relativní cestu lze použít v souborech specifických pro nuget.config projekt.
defaultPushSource Identifikuje adresu URL nebo cestu ke zdroji balíčku, která by se měla použít jako výchozí, pokud se pro operaci nenašly žádné jiné zdroje balíčků.
no_proxy http_proxy http_proxy.user http_proxy.password Nastavení proxy serveru, které se má použít při připojování ke zdrojům balíčků; http_proxy by měla být ve formátu http://<username>:<password>@<domain>. Hesla jsou zašifrovaná a nelze je přidat ručně. Hodnota no_proxyje čárkami oddělený seznam domén, které obejití proxy serveru. Pro tyto hodnoty můžete použít proměnné prostředí http_proxy a no_proxy. Další podrobnosti najdete v tématu Nastavení proxy serveru NuGet (skolima.blogspot.com).
maxHttpRequestsPerSource Řídí maximální počet paralelních požadavků odesílaných z NuGetu do každého zdroje balíčků pro řešení závislostí balíčků a stahování. Výchozí hodnota dotnet.exe je Int32.MaxValue odvozena z HttpClientHandler.MaxConnectionsPerServer vlastnosti. Toto nastavení nemá žádný vliv na dotnet.exeMac OS to, protože omezení je nastavené tak, aby 16 se zabránilo příliš mnoha chybám otevřených souborů. Výchozí hodnota, na NuGet client tools které běží, například Visual Studio a nuget.exe je 64 zapnutá a 1 zapnutá WindowsMono..NET Framework Výchozí hodnota pro Packages.config projekty stylu je nastavena na Environment.ProcessorCount. Konfigurace maxHttpRequestsPerSource vlastnosti na hodnotu menší než výchozí může mít vliv na výkon NuGetu.
signatureValidationMode Určuje režim ověřování použitý k ověření podpisů balíčku pro instalaci balíčku a obnovení. Hodnoty jsou accept, require. Výchozí hodnota je accept.

Příklad:

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

bindingRedirects section

Konfiguruje, jestli NuGet provádí automatické přesměrování vazeb při instalaci balíčku.

Klíč Hodnota
Přeskočit Logická hodnota označující, jestli se mají přeskakovat automatické přesměrování vazeb. Výchozí hodnotou je hodnota false.

Příklad:

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

oddíl packageRestore

Řídí obnovení balíčku během sestavení.

Klíč Hodnota
enabled Logická hodnota označující, jestli nuGet může provést automatické obnovení. Proměnnou prostředí můžete také nastavit EnableNuGetPackageRestore s hodnotou True namísto nastavení tohoto klíče v konfiguračním souboru.
automatická Logická hodnota označující, jestli má NuGet kontrolovat chybějící balíčky během sestavení.

Příklad:

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

oddíl řešení

Určuje, jestli packages je složka řešení součástí správy zdrojového kódu. Tato část funguje jenom v nuget.config souborech ve složce řešení.

Klíč Hodnota
disableSourceControlIntegration Logická hodnota označující, jestli se má složka balíčků při práci se správou zdrojového kódu ignorovat. Výchozí hodnota je False.

Příklad:

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

Oddíly zdroje balíčků

Spolupracují packageSourcesna tom, trustedSignerspackageSourceMappingpackageSourceCredentialsapikeysactivePackageSourcedisabledPackageSourcesjak NuGet funguje s úložišti balíčků během operací instalace, obnovení a aktualizace.

Příkaznuget sources se obvykle používá ke správě těchto nastavení, s výjimkou apikeys toho, který se spravuje pomocí nuget setapikey příkazu a trustedSigners který se spravuje pomocí nuget trusted-signers příkazu.

Všimněte si, že zdrojová adresa URL pro nuget.org je https://api.nuget.org/v3/index.json.

packageSources

Zobrazí seznam všech známých zdrojů balíčků. Pořadí se ignoruje během operací obnovení a s libovolným projektem ve formátu PackageReference. NuGet respektuje pořadí zdrojů pro operace instalace a aktualizace s projekty pomocí packages.config.

Klíč Hodnota protocolVersion
(název pro přiřazení ke zdroji balíčku) Cesta nebo adresa URL zdroje balíčku. Verze protokolu serveru NuGet, která se má použít. Aktuální verze je 3. Výchozí hodnota je verze 2, pokud neodkazuje na zdrojovou adresu URL balíčku končící .json na (např. https://api.nuget.org/v3/index.json). Podporuje se v NuGetu 3.0 nebo novějším. Další informace o protokolu verze 3 najdete v rozhraní API serveru NuGet .

Příklad:

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

Tip

Pokud <clear /> je pro daný uzel k dispozici, NuGet ignoruje dříve definované hodnoty konfigurace pro daný uzel. Přečtěte si další informace o způsobu použití nastavení.

packageSourceCredentials

Ukládá uživatelská jména a hesla pro zdroje, obvykle zadané pomocí -username a -password přepínačů .nuget sources Hesla jsou ve výchozím nastavení zašifrovaná, pokud -storepasswordincleartext se tato možnost nepoužívá. Volitelně je možné pomocí přepínače zadat -validauthenticationtypes platné typy ověřování.

Klíč Hodnota
username Uživatelské jméno zdroje ve formátu prostého textu.
heslo Šifrované heslo pro zdroj. Šifrovaná hesla jsou podporována pouze ve Windows a dešifrovat je možné pouze v případě použití na stejném počítači a prostřednictvím stejného uživatele jako původní šifrování.
cleartextpassword Nešifrované heslo pro zdroj. Poznámka: Proměnné prostředí lze použít pro lepší zabezpečení.
validauthenticationtypes Seznam platných typů ověřování oddělených čárkami pro tento zdroj Tuto možnost nastavtebasic, pokud server inzeruje protokol NTLM nebo Negotiate a vaše přihlašovací údaje musí být odeslány pomocí základního mechanismu, například při použití PAT s místními Azure DevOps Server. Mezi další platné hodnoty patří negotiate, , a digestkerberosntlm, ale tyto hodnoty nejsou pravděpodobně užitečné.

Tip

Pokud se předá nešifrované heslo pro password chybovou zprávu "Parametr je nesprávný".

Příklad:

V konfiguračním souboru <packageSourceCredentials> obsahuje element podřízené uzly pro každý použitelný zdrojový název (mezery v názvu jsou nahrazeny _x0020_). To znamená, že pro zdroje s názvem Contoso a Test Source obsahuje konfigurační soubor při použití šifrovaných hesel následující:

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

Při použití nešifrovaných hesel uložených v proměnné prostředí:

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

Při používání nešifrovaných hesel:

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

Kromě toho je možné zadat platné metody ověřování:

<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="ClearTextPassword" value="hal+9ooo_da!sY" />
        <add key="ValidAuthenticationTypes" value="basic, negotiate" />
    </Test_x0020_Source>
</packageSourceCredentials>

apikeys

Ukládá klíče pro zdroje, které používají ověřování pomocí klíče rozhraní API, jak je nastavené pomocí nuget setapikey příkazu.

Klíč Hodnota
(zdrojová adresa URL) Šifrovaný klíč rozhraní API.

Příklad:

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

disabledPackageSources

Identifikované aktuálně zakázané zdroje. Může být prázdný. Pokud nejsou v této části zakázané konkrétní zdroje, jsou povolené.

Klíč Hodnota
(název zdroje) Logická hodnota označující, jestli je zdroj zakázaný.

Příklad:

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

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

V předchozím příkladu je zdroj Contoso balíčku zakázaný a nebude použit ke stažení nebo instalaci balíčků.

activePackageSource

(pouze 2.x; zastaralé ve verzi 3.x+)

Identifikuje aktuálně aktivní zdroj nebo označuje agregaci všech zdrojů.

Klíč Hodnota
(název zdroje) nebo All Pokud je klíčem název zdroje, hodnota je zdrojová cesta nebo adresa URL. Pokud Allby hodnota měla zkombinovat (Aggregate source) všechny zdroje balíčků, které nejsou jinak zakázané.

Příklad:

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

Oddíl trustedSigners

Ukládá důvěryhodné podepisující osoby používané k povolení balíčku při instalaci nebo obnovení. Tento seznam nemůže být prázdný, pokud uživatel nastaví signatureValidationMode na require.

Tento oddíl lze aktualizovat příkazemnuget trusted-signers.

Schéma:

Důvěryhodný podepisovač má kolekci certificate položek, které vypisují všechny certifikáty, které identifikují daného podepisujícího. Důvěryhodným podepisovačem může být buď nebo Author .Repository

Důvěryhodné úložiště také určuje serviceIndex úložiště (které musí být platným https identifikátorem URI) a volitelně můžete zadat seznam oddělený owners středníky, aby bylo možné omezit ještě více důvěryhodných uživatelů z tohoto konkrétního úložiště.

Podporované algoritmy hash používané pro otisk prstu certifikátu jsou SHA256SHA384 a SHA512.

certificateallowUntrustedRoottrue Pokud je zadaný certifikát povolený zřetěznout do nedůvěryhodného kořenového adresáře při vytváření řetězu certifikátů jako součást ověření podpisu.

Příklad:

<trustedSigners>
    <author name="microsoft">
        <certificate fingerprint="3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
        <certificate fingerprint="AA12DA22A49BCE7D5C1AE64CC1F3D892F150DA76140F210ABD2CBFFCA2C18A27" 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>

oddíl fallbackPackageFolders

(3,5+) Poskytuje způsob, jak předinstalovat balíčky, aby se v záložních složkách nenašla žádná práce. Záložní složky balíčků mají stejnou složku a strukturu souborů jako globální složka balíčku: .nupkg je k dispozici a všechny soubory se extrahují.

Vyhledávací logika pro tuto konfiguraci je:

  • Vyhledejte globální složku balíčku a zjistěte, jestli je balíček nebo verze již stažena.

  • Podívejte se do záložních složek pro shodu balíčku nebo verze.

Pokud je některý z vyhledávání úspěšný, není nutné stáhnout.

Pokud se shoda nenajde, NuGet zkontroluje zdroje souborů a pak zdroje http a pak stáhne balíčky.

Klíč Hodnota
(název záložní složky) Cesta k záložní složce

Příklad:

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

Oddíl mapování zdroje balíčků

Tato packageSourceMapping část obsahuje podrobnosti, které pomáhají operacím balíčku NuGet určit, odkud se má stáhnout ID balíčku.

Tento oddíl je možné spravovat jenom ručně.

Oddíl packageSourceMapping může obsahovat packageSource jenom oddíly.

packageSource

Dílčí oddíl oddílu packageSourceMapping . Obsahuje mapování, které pomáhá NuGetu určit, jestli se má zdroj zvážit pro stažení balíčku zájmu.

Klíč
Název zdroje balíčku deklarovaného v oddílu packageSources Klíč musí přesně odpovídat klíči zdroje balíčku.

Oddíly packageSource v části packageSourceMapping jsou jednoznačně identifikovány key.

package

Část package je součástí oddílu packageSource .

Vzor
Vzor definovaný syntaxí mapování zdroje balíčků.

Příklad:

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

oddíl packageManagement

Nastaví výchozí formát správy balíčků packages.confignebo PackageReference. Projekty ve stylu sady SDK vždy používají PackageReference.

Klíč Hodnota
formát Logická hodnota označující výchozí formát správy balíčků. Pokud 1, formát je PackageReference. Pokud 0je formát packages.config.
zakázaný Logická hodnota označující, jestli se má zobrazit výzva k výběru výchozího formátu balíčku při první instalaci balíčku. False skryje výzvu.

Příklad:

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

Tip

Pokud <clear /> je pro daný uzel k dispozici, NuGet ignoruje dříve definované konfigurační hodnoty pro daný uzel. Přečtěte si další informace o tom, jak se nastavení používá.

Použití proměnných prostředí

Proměnné prostředí můžete použít v nuget.config hodnotách (NuGet 3.4+) k použití nastavení za běhu.

Pokud HOME je například proměnná prostředí ve Windows nastavená na c:\users\username, pak se hodnota %HOME%\NuGetRepository v konfiguračním souboru přeloží na c:\users\username\NuGetRepository.

Všimněte si, že musíte používat proměnné prostředí ve stylu Windows (začíná a končí %) i v systému Mac/Linux. Při $HOME/NuGetRepository použití v konfiguračním souboru se problém nevyřeší. V systému Mac/Linux se hodnota %HOME%/NuGetRepository přeloží na /home/myStuff/NuGetRepository.

Pokud proměnná prostředí není nalezena, nuGet použije hodnotu literálu z konfiguračního souboru. Například %MY_UNDEFINED_VAR%/NuGetRepository se vyřeší jako path/to/current_working_dir/$MY_UNDEFINED_VAR/NuGetRepository

Následující tabulka ukazuje syntaxi proměnné prostředí a oddělovač cest pro soubory NuGet.Config.

NuGet.Config Podpora proměnných prostředí

Syntax Oddělovač Dir Windows nuget.exe Windows dotnet.exe Mac nuget.exe (v mono) Mac dotnet.exe
%MY_VAR% / Yes Yes Yes Yes
%MY_VAR% \ Yes Yes No No
$MY_VAR / No No No No
$MY_VAR \ No No No No

Ukázkový konfigurační soubor

Níže je příklad nuget.config souboru, který znázorňuje řadu nastavení, včetně volitelných:

<?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>
        <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" />
        </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>