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 , , HighestMinor HighestPatch Highest , . |
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_proxy je čá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.exe Mac 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á Windows Mono ..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í packageSources
na tom, trustedSigners
packageSourceMapping
packageSourceCredentials
apikeys
activePackageSource
disabledPackageSources
jak 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 digest kerberos ntlm , 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 All by 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 SHA256
SHA384
a SHA512
.
certificate
allowUntrustedRoot
true
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 0 je 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>