referencia de Nuget. confignuget.config reference

El comportamiento de NuGet se controla mediante la configuración de distintos archivos de NuGet.Config o nuget.config, tal y como se describe en configuraciones comunes de Nuget.NuGet behavior is controlled by settings in different NuGet.Config or nuget.config files as described in Common NuGet configurations.

nuget.config es un archivo XML que contiene un nodo <configuration> de nivel superior, que contiene los elementos de sección que se describen en este tema.nuget.config is an XML file containing a top-level <configuration> node, which then contains the section elements described in this topic. Cada sección contiene cero o más elementos.Each section contains zero or more items. Vea el archivo de configuración de ejemplo.See the examples config file. Los nombres de opción distinguen mayúsculas de minúsculas, y los valores pueden usar variables de entorno.Setting names are case-insensitive, and values can use environment variables.

Sección configconfig section

Contiene varios valores de configuración, que se pueden establecer mediante el comando nuget config.Contains miscellaneous configuration settings, which can be set using the nuget config command.

dependencyVersion y repositoryPath solo se aplican a los proyectos que usan packages.config.dependencyVersion and repositoryPath apply only to projects using packages.config. globalPackagesFolder solo se aplica a los proyectos que usan el formato PackageReference.globalPackagesFolder applies only to projects using the PackageReference format.

KeyKey {2>Value<2}Value
dependencyVersion (solo packages.config)dependencyVersion (packages.config only) El valor predeterminado DependencyVersion para la instalación, restauración y actualización del paquete, cuando no se especifica directamente el modificador -DependencyVersion.The default DependencyVersion value for package install, restore, and update, when the -DependencyVersion switch is not specified directly. Este valor también se usa en la interfaz de usuario del Administrador de paquetes NuGet.This value is also used by the NuGet Package Manager UI. Los valores son Lowest, HighestPatch, HighestMinor, Highest.Values are Lowest, HighestPatch, HighestMinor, Highest.
globalPackagesFolder (proyectos que solo usan PackageReference)globalPackagesFolder (projects using PackageReference only) La ubicación de la carpeta de paquetes global predeterminada.The location of the default global packages folder. El valor predeterminado es %userprofile%\.nuget\packages (Windows) o ~/.nuget/packages (Mac o Linux).The default is %userprofile%\.nuget\packages (Windows) or ~/.nuget/packages (Mac/Linux). Se puede usar una ruta de acceso relativa en archivos nuget.config específicos del proyecto.A relative path can be used in project-specific nuget.config files. Este valor se reemplaza por la variable de entorno NUGET_PACKAGES, que tiene prioridad.This setting is overridden by the NUGET_PACKAGES environment variable, which takes precedence.
repositoryPath (solo packages.config)repositoryPath (packages.config only) La ubicación en la que se van a instalar los paquetes NuGet en lugar de la carpeta $(Solutiondir)/packages predeterminada.The location in which to install NuGet packages instead of the default $(Solutiondir)/packages folder. Se puede usar una ruta de acceso relativa en archivos nuget.config específicos del proyecto.A relative path can be used in project-specific nuget.config files. Este valor se reemplaza por la variable de entorno NUGET_PACKAGES, que tiene prioridad.This setting is overridden by the NUGET_PACKAGES environment variable, which takes precedence.
defaultPushSourcedefaultPushSource Identifica la dirección URL o ruta de acceso de origen del paquete que se debe usar como valor predeterminado si no se encuentra ningún otro origen del paquete para una operación.Identifies the URL or path of the package source that should be used as the default if no other package sources are found for an operation.
http_proxy http_proxy.user http_proxy.password no_proxyhttp_proxy http_proxy.user http_proxy.password no_proxy Configuración de proxy que se usa al conectarse a orígenes de paquetes; http_proxy debe tener el formato http://<username>:<password>@<domain>.Proxy settings to use when connecting to package sources; http_proxy should be in the format http://<username>:<password>@<domain>. Las contraseñas están cifradas y no se pueden agregar de forma manual.Passwords are encrypted and cannot be added manually. Para no_proxy, el valor es una lista separada por comas de dominios que omiten el servidor proxy.For no_proxy, the value is a comma-separated list of domains the bypass the proxy server. Como alternativa, puede usar las variables de entorno http_proxy y no_proxy para esos valores.You can alternately use the http_proxy and no_proxy environment variables for those values. Para obtener más información, vea Configuración de proxy de NuGet (skolima.blogspot.com).For additional details, see NuGet proxy settings (skolima.blogspot.com).
signatureValidationModesignatureValidationMode Especifica el modo de validación que se usa para comprobar las firmas del paquete para la instalación y restauración del paquete.Specifies the validation mode used to verify package signatures for package install, and restore. Los valores son accept, require.Values are accept, require. Tiene como valor predeterminado accept.Defaults to accept.

Ejemplo:Example:

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

Sección bindingRedirectsbindingRedirects section

Configura si NuGet realiza redirecciones de enlaces automáticas cuando se instala un paquete.Configures whether NuGet does automatic binding redirects when a package is installed.

KeyKey {2>Value<2}Value
skipskip Un valor booleano que indica si se omiten las redirecciones de enlaces automáticas.A Boolean indicating whether to skip automatic binding redirects. El valor predeterminado es false.The default is false.

Ejemplo:Example:

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

Sección packageRestorepackageRestore section

Controla la restauración del paquete durante las compilaciones.Controls package restore during builds.

KeyKey {2>Value<2}Value
habilitadoenabled Un valor booleano que indica si NuGet puede realizar la restauración automática.A Boolean indicating whether NuGet can perform automatic restore. También se puede establecer la variable de entorno EnableNuGetPackageRestore con un valor de True en lugar de establecer esta clave en el archivo de configuración.You can also set the EnableNuGetPackageRestore environment variable with a value of True instead of setting this key in the config file.
automáticamenteautomatic Un valor booleano que indica si NuGet debe comprobar los paquetes que faltan durante una compilación.A Boolean indicating whether NuGet should check for missing packages during a build.

Ejemplo:Example:

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

Sección solutionsolution section

Controla si la carpeta packages de una solución se incluye en el control de código fuente.Controls whether the packages folder of a solution is included in source control. En esta sección solo funciona en los archivos nuget.config de la carpeta de una solución.This section works only in nuget.config files in a solution folder.

KeyKey {2>Value<2}Value
disableSourceControlIntegrationdisableSourceControlIntegration Un valor booleano que indica si se debe ignorar la carpeta de paquetes cuando se trabaja con el control de código fuente.A Boolean indicating whether to ignore the packages folder when working with source control. El valor predeterminado es false.The default value is false.

Ejemplo:Example:

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

Secciones de origen del paquetePackage source sections

Los packageSources, packageSourceCredentials, apikeys, activePackageSource, disabledPackageSources y trustedSigners funcionan juntos para configurar el funcionamiento de NuGet con los repositorios de paquetes durante las operaciones de instalación, restauración y actualización.The packageSources, packageSourceCredentials, apikeys, activePackageSource, disabledPackageSources and trustedSigners all work together to configure how NuGet works with package repositories during install, restore, and update operations.

El comandonuget sources se utiliza generalmente para administrar esta configuración, excepto apikeys que se administra mediante el comandonuget setapikeyy trustedSigners que se administra mediante el comandonuget trusted-signers.The nuget sources command is generally used to manage these settings, except for apikeys which is managed using the nuget setapikey command, and trustedSigners which is managed using the nuget trusted-signers command.

Tenga en cuenta que la dirección URL de origen de nuget.org es https://api.nuget.org/v3/index.json.Note that the source URL for nuget.org is https://api.nuget.org/v3/index.json.

packageSourcespackageSources

Enumera todos los orígenes de paquetes conocidos.Lists all known package sources. El orden se omite durante las operaciones de restauración y con cualquier proyecto que use el formato PackageReference.The order is ignored during restore operations and with any project using the PackageReference format. NuGet respeta el orden de los orígenes de las operaciones de instalación y actualización con proyectos que usan packages.config.NuGet respects the order of sources for install and update operations with projects using packages.config.

KeyKey {2>Value<2}Value
(nombre para asignar al origen del paquete)(name to assign to the package source) La ruta de acceso o dirección URL del origen del paquete.The path or URL of the package source.

Ejemplo:Example:

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

packageSourceCredentialspackageSourceCredentials

Almacena nombres de usuario y contraseñas para los orígenes, normalmente especificados con los modificadores -username y -password con nuget sources.Stores usernames and passwords for sources, typically specified with the -username and -password switches with nuget sources. Las contraseñas se cifran de forma predeterminada a menos que también se use la opción -storepasswordincleartext.Passwords are encrypted by default unless the -storepasswordincleartext option is also used.

KeyKey {2>Value<2}Value
nombreDeUsuariousername El nombre de usuario para el origen en texto sin formato.The user name for the source in plain text.
Contraseña depassword La contraseña cifrada para el origen.The encrypted password for the source.
cleartextpasswordcleartextpassword La contraseña no cifrada para el origen.The unencrypted password for the source.

Ejemplo:Example:

En el archivo de configuración, el elemento <packageSourceCredentials> contiene nodos secundarios para cada nombre de origen aplicable (los espacios en el nombre se reemplazan por _x0020_).In the config file, the <packageSourceCredentials> element contains child nodes for each applicable source name (spaces in the name are replaced with _x0020_). Es decir, para los orígenes denominados "Contoso" y "Test Source", el archivo de configuración contiene lo siguiente cuando se usan contraseñas cifradas:That is, for sources named "Contoso" and "Test Source", the config file contains the following when using encrypted passwords:

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

Cuando se usan contraseñas sin cifrar:When using unencrypted passwords:

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

apikeysapikeys

Almacena claves para los orígenes en los que se usa autenticación de clave de API, como se establece mediante el comando nuget setapikey.Stores keys for sources that use API key authentication, as set with the nuget setapikey command.

KeyKey {2>Value<2}Value
(dirección URL de origen)(source URL) La clave de API cifrada.The encrypted API key.

Ejemplo:Example:

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

disabledPackageSourcesdisabledPackageSources

Orígenes actualmente deshabilitados identificados.Identified currently disabled sources. Puede estar vacía.May be empty.

KeyKey {2>Value<2}Value
(nombre del origen)(name of source) Un valor booleano que indica si el origen está deshabilitado.A Boolean indicating whether the source is disabled.

Ejemplo:Example:

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

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

activePackageSourceactivePackageSource

(solo para 2.x; en desuso en 3.x y versiones posteriores)(2.x only; deprecated in 3.x+)

Identifica al origen actualmente activo o indica la suma de todos los orígenes.Identifies to the currently active source or indicates the aggregate of all sources.

KeyKey {2>Value<2}Value
(nombre del origen) o All(name of source) or All Si la clave es el nombre de un origen, el valor es la ruta de acceso o la dirección URL del origen.If key is the name of a source, the value is the source path or URL. Si es All, el valor debe ser (Aggregate source) para combinar todos los orígenes de paquetes que no estén deshabilitados.If All, value should be (Aggregate source) to combine all package sources that are not otherwise disabled.

Ejemplo:Example:

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

sección trustedSignerstrustedSigners section

Almacena los firmantes de confianza que se usan para permitir el paquete durante la instalación o la restauración.Stores trusted signers used to allow package while installing or restoring. Esta lista no puede estar vacía cuando el usuario establece signatureValidationMode en require.This list cannot be empty when the user sets signatureValidationMode to require.

Esta sección se puede actualizar con el comandonuget trusted-signers.This section can be updated with the nuget trusted-signers command.

Esquema:Schema:

Un firmante de confianza tiene una colección de elementos certificate que dan de alta todos los certificados que identifican a un firmante determinado.A trusted signer has a collection of certificate items that enlist all the certificates that identify a given signer. Un firmante de confianza puede ser un Author o un Repository.A trusted signer can be either an Author or a Repository.

Un repositorio de confianza también especifica el serviceIndex para el repositorio (que debe ser un uri de https válido) y, opcionalmente, puede especificar una lista delimitada por punto y coma de owners para restringir aún más quién sea de confianza de ese repositorio específico.A trusted repository also specifies the serviceIndex for the repository (which has to be a valid https uri) and can optionally specify a semi-colon delimited list of owners to restrict even more who is trusted from that specific repository.

Los algoritmos hash admitidos que se usan para una huella digital de certificado son SHA256, SHA384 y SHA512.The supported hash algorithms used for a certificate fingerprint are SHA256, SHA384 and SHA512.

Si un certificate especifica allowUntrustedRoot como true se permite que el certificado especificado se encadene a una raíz que no es de confianza mientras se compila la cadena de certificados como parte de la comprobación de la firma.If a certificate specifies allowUntrustedRoot as true the given certificate is allowed to chain to an untrusted root while building the certificate chain as part of the signature verification.

Ejemplo:Example:

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

sección fallbackPackageFoldersfallbackPackageFolders section

(3.5 +) Proporciona una manera de preinstalar paquetes para que no sea necesario realizar ningún trabajo si el paquete se encuentra en las carpetas de reserva.(3.5+) Provides a way to preinstall packages so that no work needs to be done if the package is found in the fallback folders. Las carpetas de paquetes de reserva tienen exactamente la misma estructura de archivos y carpetas que la carpeta de paquetes global: . nupkg está presente y se extraen todos los archivos.Fallback package folders have the exact same folder and file structure as the global package folder: .nupkg is present, and all files are extracted.

La lógica de búsqueda para esta configuración es:The lookup logic for this configuration is:

  • Busca en la carpeta de paquetes globales para ver si ya se ha descargado el paquete o la versión.Look in global package folder to see if the package/version is already downloaded.

  • Busque en las carpetas de reserva una coincidencia de paquete/versión.Look in the fallback folders for a package/version match.

Si alguna búsqueda se realiza correctamente, no es necesario realizar ninguna descarga.If either lookup is successful, then no download is necessary.

Si no se encuentra ninguna coincidencia, NuGet comprueba los orígenes de archivos y, a continuación, los orígenes http y, a continuación, descarga los paquetes.If a match is not found, then NuGet checks file sources, and then http sources, and then it downloads the packages.

KeyKey {2>Value<2}Value
(nombre de la carpeta de reserva)(name of fallback folder) Ruta de acceso a la carpeta de reserva.Path to fallback folder.

Ejemplo:Example:

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

sección packageManagementpackageManagement section

Establece el formato de administración de paquetes predeterminado, Package. config o PackageReference.Sets the default package management format, either packages.config or PackageReference. Los proyectos de estilo SDK siempre usan PackageReference.SDK-style projects always use PackageReference.

KeyKey {2>Value<2}Value
formatoformat Un valor booleano que indica el formato de administración de paquetes predeterminado.A Boolean indicating the default package management format. Si 1, el formato es PackageReference.If 1, format is PackageReference. Si 0, Format es packages. config.If 0, format is packages.config.
deshabilitadosdisabled Un valor booleano que indica si se muestra el mensaje para seleccionar un formato de paquete predeterminado en la primera instalación del paquete.A Boolean indicating whether to show the prompt to select a default package format on first package install. False oculta el aviso.False hides the prompt.

Ejemplo:Example:

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

Uso de variables de entornoUsing environment variables

Puede usar variables de entorno en valores nuget.config (NuGet 3.4 o versiones posteriores) para aplicar la configuración en tiempo de ejecución.You can use environment variables in nuget.config values (NuGet 3.4+) to apply settings at run time.

Por ejemplo, si la variable de entorno HOME en Windows se establece en c:\users\username, el valor de %HOME%\NuGetRepository en el archivo de configuración se resuelve como c:\users\username\NuGetRepository.For example, if the HOME environment variable on Windows is set to c:\users\username, then the value of %HOME%\NuGetRepository in the configuration file resolves to c:\users\username\NuGetRepository.

De forma similar, si HOME en Mac/Linux se establece en /home/myStuff, $HOME/NuGetRepository en el archivo de configuración se resuelve como /home/myStuff/NuGetRepository.Similarly, if HOME on Mac/Linux is set to /home/myStuff, then $HOME/NuGetRepository in the configuration file resolves to /home/myStuff/NuGetRepository.

Si no se encuentra una variable de entorno, NuGet usa el valor literal del archivo de configuración.If an environment variable is not found, NuGet uses the literal value from the configuration file.

Archivo de configuración de ejemploExample config file

A continuación se muestra un archivo nuget.config de ejemplo en el que se ilustran varios valores:Below is an example nuget.config file that illustrates a number of settings:

<?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. On Mac/Linux,
            use $PACKAGE_HOME/External as the value.
        -->
        <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" />
        </author>
        <repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
            <certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B46760709CBEEC6F4219AA6157D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
            <owners>microsoft;aspnet;nuget</owners>
        </repository>
    </trustedSigners>
</configuration>