Referencia nuget.config
NuGet comportamiento se controla mediante la configuración de archivos o diferentes, como se describe en Configuraciones NuGet.Confignuget.config NuGet NuGet.Config.
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. Cada sección contiene cero o más elementos. Vea el archivo de configuración de ejemplo. Los nombres de opción distinguen mayúsculas de minúsculas, y los valores pueden usar variables de entorno.
Sección config
Contiene varios valores de configuración, que se pueden establecer mediante el comando.
dependencyVersion y repositoryPath se aplican solo a proyectos que usan packages.config . globalPackagesFolder solo se aplica a los proyectos que usan el formato PackageReference.
| Clave | Valor |
|---|---|
dependencyVersion (solo packages.config) |
El valor predeterminado DependencyVersion para la instalación, restauración y actualización del paquete, cuando no se especifica directamente el modificador -DependencyVersion. Este valor también se usa en la interfaz de usuario del Administrador de paquetes NuGet. Los valores son Lowest, HighestPatch, HighestMinor, Highest. |
| globalPackagesFolder (proyectos que solo usan PackageReference) | La ubicación de la carpeta de paquetes global predeterminada. El valor predeterminado es %userprofile%\.nuget\packages (Windows) o ~/.nuget/packages (Mac o Linux). Se puede usar una ruta de acceso relativa en archivos nuget.config específicos del proyecto. Esta configuración se reemplaza por la NUGET_PACKAGES variable de entorno , que tiene prioridad. |
repositoryPath (solo packages.config) |
La ubicación en la que se van a instalar los paquetes NuGet en lugar de la carpeta $(Solutiondir)/packages predeterminada. Se puede usar una ruta de acceso relativa en archivos nuget.config específicos del proyecto. Esta configuración se reemplaza por la NUGET_PACKAGES variable de entorno , que tiene prioridad. |
| defaultPushSource | 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. |
| http_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>. Las contraseñas están cifradas y no se pueden agregar de forma manual. Para no_proxy, el valor es una lista separada por comas de dominios que omiten el servidor proxy. Como alternativa, puede usar las variables de entorno http_proxy y no_proxy para esos valores. Para obtener más información, vea Configuración de proxy de NuGet (skolima.blogspot.com). |
| signatureValidationMode | Especifica el modo de validación utilizado para comprobar las firmas de paquete para la instalación y restauración del paquete. Los valores son accept , require . Tiene como valor predeterminado accept. |
Ejemplo:
<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 bindingRedirects
Configura si NuGet realiza redirecciones de enlaces automáticas cuando se instala un paquete.
| Clave | Valor |
|---|---|
| skip | Un valor booleano que indica si se omiten las redirecciones de enlaces automáticas. El valor predeterminado es false. |
Ejemplo:
<bindingRedirects>
<add key="skip" value="True" />
</bindingRedirects>
Sección packageRestore
Controla la restauración del paquete durante las compilaciones.
| Clave | Valor |
|---|---|
| enabled | Un valor booleano que indica si NuGet puede realizar la restauración automática. 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. |
| automatic | Un valor booleano que indica si NuGet debe comprobar los paquetes que faltan durante una compilación. |
Ejemplo:
<packageRestore>
<add key="enabled" value="true" />
<add key="automatic" value="true" />
</packageRestore>
Sección solution
Controla si la carpeta packages de una solución se incluye en el control de código fuente. En esta sección solo funciona en los archivos nuget.config de la carpeta de una solución.
| Clave | Valor |
|---|---|
| disableSourceControlIntegration | Un valor booleano que indica si se debe ignorar la carpeta de paquetes cuando se trabaja con el control de código fuente. El valor predeterminado es false. |
Ejemplo:
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
Secciones de origen del paquete
, , , , y funcionan conjuntamente para configurar cómo funciona NuGet repositorios de paquetes durante las operaciones de packageSourcespackageSourceCredentialsapikeysactivePackageSourcedisabledPackageSourcestrustedSignerspackageSourceMapping instalación, restauración y actualización.
El comando se usa generalmente para administrar esta configuración, excepto para la que se administra mediante el comando y que apikeys se administra mediante el apikeystrustedSignersnuget setapikey.
Tenga en cuenta que la dirección URL de origen de nuget.org es https://api.nuget.org/v3/index.json.
packageSources
Enumera todos los orígenes de paquetes conocidos. El orden se omite durante las operaciones de restauración y con cualquier proyecto que use el formato PackageReference. NuGet respeta el orden de los orígenes para las operaciones de instalación y actualización con proyectos que usan packages.config .
| Clave | Valor |
|---|---|
| (nombre para asignar al origen del paquete) | La ruta de acceso o dirección URL del origen del paquete. |
Ejemplo:
<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>
Sugerencia
Cuando <clear /> está presente para un nodo determinado, NuGet ignora los valores de configuración definidos previamente para ese nodo. Obtenga más información sobre cómo se aplica la configuración.
packageSourceCredentials
Almacena nombres de usuario y contraseñas para los orígenes, normalmente especificados con los modificadores -username y -password con nuget sources. Las contraseñas se cifran de forma predeterminada a menos que también se use la opción -storepasswordincleartext.
Opcionalmente, se pueden especificar tipos de autenticación válidos con el -validauthenticationtypes modificador .
| Clave | Value |
|---|---|
| username | El nombre de usuario para el origen en texto sin formato. |
| password | La contraseña cifrada para el origen. Las contraseñas cifradas solo se admiten en Windows y solo se pueden descifrar cuando se usan en el mismo equipo y a través del mismo usuario que el cifrado original. |
| cleartextpassword | La contraseña no cifrada para el origen. Nota: Las variables de entorno se pueden usar para mejorar la seguridad. |
| validauthenticationtypes | Lista separada por comas de tipos de autenticación válidos para este origen. Establézcalo en basic si el servidor anuncia NTLM o Negotiate y las credenciales deben enviarse mediante el mecanismo básico, por ejemplo, cuando se usa una instancia de PAT con Azure DevOps Server local. Otros valores válidos son negotiate, kerberos, ntlm y digest, pero es poco probable que estos valores sean útiles. |
Ejemplo:
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_). 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:
<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 almacenadas en una variable de entorno:
<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>
Cuando se usan contraseñas sin cifrar:
<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>
Además, se pueden proporcionar métodos de autenticación válidos:
<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
Almacena las claves de los orígenes que usan la autenticación de clave de API, tal como se establece con el comando.
| Clave | Valor |
|---|---|
| (dirección URL de origen) | La clave de API cifrada. |
Ejemplo:
<apikeys>
<add key="https://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
</apikeys>
disabledPackageSources
Orígenes actualmente deshabilitados identificados. Puede estar vacío.
| Clave | Valor |
|---|---|
| (nombre del origen) | Un valor booleano que indica si el origen está deshabilitado. |
Ejemplo:
<disabledPackageSources>
<add key="Contoso" value="true" />
</disabledPackageSources>
<!-- Empty list -->
<disabledPackageSources />
activePackageSource
(solo para 2.x; en desuso en 3.x y versiones posteriores)
Identifica al origen actualmente activo o indica la suma de todos los orígenes.
| Clave | Valor |
|---|---|
(nombre del origen) o All |
Si la clave es el nombre de un origen, el valor es la ruta de acceso o la dirección URL del origen. Si es All, el valor debe ser (Aggregate source) para combinar todos los orígenes de paquetes que no estén deshabilitados. |
Ejemplo:
<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 trustedSigners
Almacena los firmantes de confianza que se usan para permitir el paquete durante la instalación o restauración. Esta lista no puede estar vacía cuando el usuario establece signatureValidationMode en require .
Esta sección se puede actualizar con el comando.
Esquema:
Un firmante de confianza tiene una colección de elementos que dan de alta todos los certificate certificados que identifican a un firmante determinado. Un firmante de confianza puede ser o AuthorRepository .
Un repositorio de confianza también especifica para el repositorio (que debe ser un URI válido) y, opcionalmente, puede especificar una lista delimitada por punto y coma de para restringir aún más quién es de confianza desde ese repositorio httpsowners específico.
Los algoritmos hash admitidos que se usan para una huella digital de certificado SHA256 son y SHA384SHA512 .
Si especifica como certificado dado, se permite encadenar a una raíz que no es de confianza al compilar la cadena de certificados certificate como parte de la comprobación de la allowUntrustedRoottrue firma.
Ejemplo:
<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>
sección fallbackPackageFolders
(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. Las carpetas de paquetes de reserva tienen exactamente la misma carpeta y estructura de archivos que la carpeta global del paquete: .nupkg está presente y se extraen todos los archivos.
La lógica de búsqueda para esta configuración es:
Busque en la carpeta global del paquete para ver si el paquete o la versión ya está descargado.
Busque en las carpetas de reserva una coincidencia de paquete/versión.
Si alguna de las búsquedas se realiza correctamente, no es necesaria ninguna descarga.
Si no se encuentra una coincidencia, NuGet los orígenes de archivo y, a continuación, los orígenes HTTP y, a continuación, descarga los paquetes.
| Clave | Valor |
|---|---|
| (nombre de la carpeta de reserva) | Ruta de acceso a la carpeta de reserva. |
Ejemplo:
<fallbackPackageFolders>
<add key="XYZ Offline Packages" value="C:\somePath\someFolder\"/>
</fallbackPackageFolders>
Sección asignación de origen del paquete
La sección contiene los detalles que ayudan a la NuGet de paquetes a determinar de dónde packageSourceMapping se debe descargar un identificador de paquete.
Esta sección solo se puede administrar manualmente en este momento.
Una packageSourceMapping sección solo puede contener packageSource secciones.
packageSource
Subsección de la packageSourceMapping sección . Contiene una asignación para ayudar NuGet determinar si el origen debe tenerse en cuenta para descargar el paquete de interés.
| Clave |
|---|
Nombre de un origen de paquete declarado en la packageSources sección . La clave debe coincidir exactamente con la clave del origen del paquete. |
Las packageSource secciones de se identifican de forma única mediante packageSourceMappingkey .
paquete
forma package parte de la sección packageSource .
| Patrón |
|---|
| Patrón definido por la sintaxis de la asignación de origen del paquete. |
Ejemplo:
<packageSourceMapping>
<packageSource key="contoso.com">
<package pattern="Contoso.*" />
</packageSource>
</packageSourceMapping>
sección packageManagement
Establece el formato de administración de paquetes predeterminado, packages.config o PackageReference. Los proyectos de estilo SDK siempre usan PackageReference.
| Clave | Valor |
|---|---|
| format | Valor booleano que indica el formato de administración de paquetes predeterminado. Si 1 es , el formato es PackageReference. Si 0 es , el formato 0. |
| deshabilitado | Valor booleano que indica si se debe mostrar el mensaje para seleccionar un formato de paquete predeterminado en la primera instalación del paquete. False oculta el símbolo del sistema. |
Ejemplo:
<packageManagement>
<add key="format" value="1" />
<add key="disabled" value="False" />
</packageManagement>
Sugerencia
Cuando <clear /> está presente para un nodo determinado, NuGet ignora los valores de configuración definidos previamente para ese nodo. Obtenga más información sobre cómo se aplica la configuración.
Uso de variables de entorno
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.
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.
Tenga en cuenta que tiene que usar variables Windows de entorno (comienza y termina con %) incluso en Mac o Linux. No $HOME/NuGetRepository se resolverá tener en un archivo de configuración. En Mac/Linux, el valor %HOME%/NuGetRepository de se resolverá en /home/myStuff/NuGetRepository .
Si no se encuentra una variable de entorno, NuGet usa el valor literal del archivo de configuración. Por %MY_UNDEFINED_VAR%/NuGetRepository ejemplo, se resolverá como path/to/current_working_dir/$MY_UNDEFINED_VAR/NuGetRepository
En la tabla siguiente se muestra la sintaxis de variables de entorno y la compatibilidad con separadores de ruta de acceso NuGet.Config archivos.
NuGet.Config compatibilidad con variables de entorno
| Sintaxis | Separador de directorios | Windows nuget.exe | Windows dotnet.exe | Mac nuget.exe (en Mono) | Mac dotnet.exe |
|---|---|---|---|---|---|
%MY_VAR% |
/ |
Sí | Sí | Sí | Sí |
%MY_VAR% |
\ |
Sí | Sí | No | No |
$MY_VAR |
/ |
No | No | No | No |
$MY_VAR |
\ |
No | No | No | No |
Archivo de configuración de ejemplo
A continuación se muestra nuget.config un archivo de ejemplo que muestra una serie de configuraciones, incluidas las opcionales:
<?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>