nuget.config
riferimento
Il comportamento di NuGet è controllato dalle impostazioni in file o nuget.config
diversiNuGet.Config
, come descritto in Configurazioni NuGet comuni.
nuget.config
è un file XML contenente un nodo <configuration>
di livello superiore, che contiene a sua volta gli elementi per le sezioni descritte in questo argomento. Ogni sezione contiene zero o più elementi. Vedere il file di configurazione di esempio. Per i nomi delle impostazioni non viene fatta distinzione tra maiuscole e minuscole e per i valori si possono usare variabili di ambiente.
Suggerimento
Aggiungere un nuget.config
file nella radice del repository del progetto. Questa procedura è considerata una procedura consigliata perché promuove la ripetibilità e garantisce che diversi utenti abbiano la stessa configurazione NuGet.
Potrebbe essere necessario configurare clear
gli elementi per assicurarsi che non venga applicata alcuna configurazione specifica dell'utente o del computer. Altre informazioni su come vengono applicate le impostazioni.
Sezione config
Contiene varie impostazioni di configurazione, che possono essere impostate con il comando nuget config
.
dependencyVersion
e repositoryPath
si applicano solo ai progetti che usano packages.config
. globalPackagesFolder
si applica solo ai progetti che usano il formato PackageReference.
Chiave | valore |
---|---|
dependencyVersion (solo packages.config ) |
Valore DependencyVersion predefinito per l'installazione, il ripristino e l'aggiornamento del pacchetto, quando non viene specificata direttamente l'opzione -DependencyVersion . Questo valore viene usato anche dall'interfaccia utente di Gestione pacchetti NuGet. I valori sono Lowest , HighestPatch , HighestMinor , Highest . |
globalPackagesFolder | Percorso della cartella dei pacchetti globale predefinita. L'impostazione predefinita è %userprofile%\.nuget\packages (Windows) o ~/.nuget/packages (Mac/Linux). È possibile usare un percorso relativo nei file nuget.config specifici del progetto. Questa impostazione viene sostituita dalla NUGET_PACKAGES variabile di ambiente, che ha la precedenza. |
repositoryPath (solo packages.config ) |
Percorso in cui installare i pacchetti NuGet invece della cartella $(Solutiondir)/packages predefinita. È possibile usare un percorso relativo nei file nuget.config specifici del progetto. |
defaultPushSource | Identifica l'URL o il percorso dell'origine del pacchetto che deve essere usato come impostazione predefinita se non vengono trovate altre origini di pacchetti per un'operazione. |
http_proxy http_proxy.user http_proxy.password no_proxy | Impostazioni del proxy da usare per la connessione a origini di pacchetti. http_proxy deve essere nel formato http://<username>:<password>@<domain> . Le password vengono crittografate e non possono essere aggiunte manualmente. Per no_proxy , il valore è un elenco delimitato da virgole di domini per il bypass del server proxy. In alternativa, è possibile usare le variabili di ambiente http_proxy e no_proxy per questi valori. Per altri dettagli, vedere NuGet proxy settings (Impostazioni del proxy NuGet) (skolima.blogspot.com). |
maxHttpRequestsPerSource | Controlla il numero massimo di richieste parallele inviate da NuGet a ogni origine del pacchetto per la risoluzione e i download delle dipendenze del pacchetto. Il valore predefinito su dotnet.exe è Int32.MaxValue derivato dalla HttpClientHandler.MaxConnectionsPerServer proprietà . Questa impostazione non ha alcun impatto su dotnet.exe perché Mac OS il limite di limitazione è impostato per 16 evitare troppi errori di file aperti. Il valore predefinito per NuGet client tools che viene eseguito su .NET Framework , ad esempio Visual Studio e nuget.exe è 64 su Windows e 1 su Mono . Il valore predefinito per Packages.config i progetti di stile è impostato su Environment.ProcessorCount . La configurazione della maxHttpRequestsPerSource proprietà su un valore minore del valore predefinito potrebbe influire sulle prestazioni di NuGet. |
signatureValidationMode | Specifica la modalità di convalida utilizzata per verificare le firme dei pacchetti per l'installazione e il ripristino del pacchetto. I valori sono accept , require . Il valore predefinito è accept . |
Esempio:
<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>
Sezione bindingRedirects
Specifica se NuGet esegue o meno i reindirizzamenti di binding automatici quando viene installato un pacchetto.
Chiave | valore |
---|---|
skip | Valore booleano che indica se ignorare i reindirizzamenti di binding automatici. L'impostazione predefinita è false. |
Esempio:
<bindingRedirects>
<add key="skip" value="True" />
</bindingRedirects>
Sezione packageRestore
Controlla il ripristino dei pacchetti durante le compilazioni.
Chiave | valore |
---|---|
Enabled | Valore booleano che indica se NuGet può eseguire il ripristino automatico. È anche possibile impostare la variabile di ambiente EnableNuGetPackageRestore con il valore True invece di impostare questa chiave nel file di configurazione. |
automatic | Valore booleano che indica se NuGet deve controllare se mancano pacchetti durante la compilazione. |
Esempio:
<packageRestore>
<add key="enabled" value="true" />
<add key="automatic" value="true" />
</packageRestore>
Sezione solution
Controlla se la cartella packages
di una soluzione è inclusa nel controllo del codice sorgente. Questa sezione funziona solo nei file nuget.config
in una cartella della soluzione.
Chiave | valore |
---|---|
disableSourceControlIntegration | Valore booleano che indica se ignorare la cartella dei pacchetti quando si utilizza il controllo del codice sorgente. Il valore predefinito è false. |
Esempio:
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
Sezioni per le origini dei pacchetti
Gli packageSources
oggetti , apikeys
disabledPackageSources
trustedSigners
packageSourceCredentials
activePackageSource
e packageSourceMapping
interagiscono tutti per configurare il funzionamento di NuGet con i repository di pacchetti durante le operazioni di installazione, ripristino e aggiornamento.
Il nuget sources
comando viene in genere usato per gestire queste impostazioni, ad eccezione apikeys
del quale viene gestito tramite il nuget setapikey
comando e trustedSigners
gestito usando il nuget trusted-signers
comando .
Si noti che l'URL di origine di nuget.org è https://api.nuget.org/v3/index.json
.
packageSources
Elenca tutte le origini di pacchetti note. L'ordine viene ignorato durante le operazioni di ripristino e con qualsiasi progetto usando il formato PackageReference. NuGet rispetta l'ordine delle origini per le operazioni di installazione e aggiornamento con i progetti che usano packages.config
.
Attributo XML | Scopo |
---|---|
Chiave | (nome da assegnare all'origine di pacchetti) |
valore | Percorso o URL dell'origine di pacchetti. |
protocolVersion | Versione del protocollo del server NuGet da usare. La versione corrente è "3". L'impostazione predefinita è la versione "2" quando non punta a un URL di origine del pacchetto che termina .json (ad esempio https://api.nuget.org/v3/index.json, ). Supportato in NuGet 3.0+. Per altre informazioni sul protocollo versione 3, vedere API server NuGet. |
allowInsecureConnections | Se false o non specificato, NuGet genererà un avviso quando l'origine usa http, anziché https. Se si è certi che la comunicazione con questa origine non sarà mai a rischio di attacchi di intercettazione, è possibile impostare il valore su true per eliminare l'avviso. Supportato in NuGet 6.8+. |
disableTLSCertificateValidation | Questa proprietà di configurazione consente di disabilitare la convalida del certificato SSL/TLS per il server HTTPS. Se impostato su true, il server ignorerà eventuali errori correlati ai certificati SSL/TLS, ad esempio certificati scaduti o autofirmati, e stabilire la connessione senza convalida. Supportato in NuGet 6.11+. |
Esempio:
<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>
Nota
Usare le origini dei pacchetti attendibili.
Nota
Quando si usa l'interfaccia della riga di comando, è possibile esprimere una RestoreSources
proprietà MSBuild o--source
(interfaccia della riga di comando di .NET) | -Source
(interfaccia della riga di comando NuGet) per eseguire l'override dell'oggetto <packageSources>
definito in NuGet.config.
Suggerimento
Quando <clear />
è presente per un determinato nodo, NuGet ignora i valori di configurazione definiti in precedenza per tale nodo. Altre informazioni su come vengono applicate le impostazioni.
auditSources
Elenca tutte le origini di controllo note, che NuGet Audit userà durante il ripristino.
Se non vengono fornite origini di controllo, il ripristino userà le origini dei pacchetti e elimina NU1905.
auditSources
è stato aggiunto a NuGet 6.12.
Le origini di controllo supportano gli stessi attributi di (, ) e le origini che richiedono l'autenticazione vengono configurate con packageSourceCredentials
, allo stesso modo di packageSources
. allowInsecureConnections
protocolVersion
packageSources
Esempio:
<auditSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</auditSources>
packageSourceCredentials
Archivia i nomi utente e le password per le origini, in genere specificati con le opzioni -username
e -password
con nuget sources
. Le password vengono crittografate per impostazione predefinita, a meno che non venga usata anche l'opzione -storepasswordincleartext
.
Facoltativamente, è possibile specificare tipi di autenticazione validi con l'opzione -validauthenticationtypes
.
Chiave | valore |
---|---|
username | Nome utente per l'origine in testo normale. Nota: le variabili di ambiente possono essere usate per migliorare la sicurezza. |
password | Password crittografata per l'origine. Le password crittografate sono supportate solo in Windows e possono essere decrittografate solo se usate nello stesso computer e tramite lo stesso utente della crittografia originale. |
cleartextpassword | Password non crittografata per l'origine. Nota: le variabili di ambiente possono essere usate per migliorare la sicurezza. |
validauthenticationtypes | Elenco delimitato da virgole di tipi di autenticazione validi per questa origine. Impostare questa opzione su basic se il server annuncia NTLM o Negotiate e le credenziali devono essere inviate usando il meccanismo Basic, ad esempio quando si usa un token di accesso personale con Azure DevOps Server locale. Altri valori validi includono negotiate , kerberos , ntlm e digest , ma è improbabile che questi valori siano utili. |
Avviso
L'archiviazione delle password in testo non crittografato è fortemente sconsigliata. Si noti che le password crittografate sono supportate solo in Windows. Inoltre, possono essere decrittografati solo se usati nello stesso computer e dallo stesso utente che li ha originariamente crittografati. Per altre informazioni sulla gestione sicura delle credenziali, vedere le procedure consigliate per la sicurezza per l'utilizzo di pacchetti da feed privati.
Suggerimento
Se viene passata una password non crittografata per password
il messaggio di errore "Il parametro non è corretto" si verificherà.
Esempio:
Nel file di configurazione, l'elemento <packageSourceCredentials>
contiene i nodi figlio per ogni nome di origine applicabile (gli spazi nel nome vengono sostituiti con _x0020_
). Per le origini denominate "Contoso" e "Test Source", il file di configurazione contiene quanto segue quando si usano password crittografate:
<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>
È inoltre possibile specificare metodi di autenticazione validi.
<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>
Quando si usano password non crittografate archiviate in una variabile di ambiente:
<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>
Quando si usano password non crittografate:
Avviso
L'archiviazione delle password in testo non crittografato è fortemente sconsigliata.
<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
Archivia le chiavi per le origini che usano l'autenticazione con chiave API, in base alle impostazioni specificate con il comando nuget setapikey
.
Chiave | valore |
---|---|
(URL di origine) | Chiave API crittografata. |
Esempio:
<apikeys>
<add key="https://MyRepo/ES/api/v2/package" value="encrypted_api_key" />
</apikeys>
disabledPackageSources
Identifica le origini attualmente disabilitate. Può essere vuoto. A meno che le origini specifiche non siano disabilitate in questa sezione, sono abilitate.
Chiave | valore |
---|---|
(nome dell'origine) | Valore booleano che indica se l'origine è disabilitata. |
Esempio:
<disabledPackageSources>
<add key="Contoso" value="true" />
</disabledPackageSources>
<!-- Empty list -->
<disabledPackageSources />
Nell'esempio precedente l'origine Contoso
del pacchetto è disabilitata e non verrà usata per scaricare o installare i pacchetti.
activePackageSource
(Solo versione 2.x; deprecata nella versione 3.x+)
Identifica l'origine attualmente attiva o indica l'aggregazione di tutte le origini.
Chiave | valore |
---|---|
(nome dell'origine) o All |
Se la chiave è il nome di un'origine, il valore è il percorso o l'URL dell'origine. Se All , il valore deve essere (Aggregate source) per combinare tutte le origini di pacchetti non disabilitate in altro modo. |
Esempio:
<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>
Sezione trustedSigners
Archivia i firmatari attendibili usati per consentire il pacchetto durante l'installazione o il ripristino. Questo elenco non può essere vuoto quando l'utente imposta signatureValidationMode
su require
.
Questa sezione può essere aggiornata con il nuget trusted-signers
comando .
Schema:
Un firmatario attendibile include una raccolta di certificate
elementi che inserisce tutti i certificati che identificano un determinato firmatario. Un firmatario attendibile può essere un oggetto Author
o .Repository
Un repository attendibile specifica anche per serviceIndex
il repository (che deve essere un URI validohttps
) e può facoltativamente specificare un elenco delimitato da punti e virgola di owners
per limitare ancora di più gli utenti attendibili da tale repository specifico.
Gli algoritmi hash supportati usati per un'impronta digitale del certificato sono SHA256
e SHA384
SHA512
.
Se un certificate
oggetto specifica allowUntrustedRoot
come true
certificato specificato è autorizzato a concatenare a una radice non attendibile durante la compilazione della catena di certificati come parte della verifica della firma.
Esempio:
<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>
sezione fallbackPackageFolders
(3.5+) Fornisce un modo per preinstallare i pacchetti in modo che non sia necessario eseguire alcuna operazione se il pacchetto viene trovato nelle cartelle di fallback. Le cartelle dei pacchetti di fallback hanno esattamente la stessa struttura di cartelle e file della cartella del pacchetto globale: è presente nupkg e tutti i file vengono estratti.
La logica di ricerca per questa configurazione è:
Cercare nella cartella del pacchetto globale per verificare se il pacchetto/versione è già stato scaricato.
Cercare nelle cartelle di fallback una corrispondenza di pacchetto/versione.
Se una delle due ricerche ha esito positivo, non è necessario scaricare.
Se non viene trovata una corrispondenza, NuGet controlla le origini file e quindi le origini HTTP e quindi scarica i pacchetti.
Chiave | valore |
---|---|
(nome della cartella di fallback) | Percorso della cartella di fallback. |
Esempio:
<fallbackPackageFolders>
<add key="XYZ Offline Packages" value="C:\somePath\someFolder\"/>
</fallbackPackageFolders>
Sezione Mapping origine pacchetto
La packageSourceMapping
sezione contiene i dettagli che consentono alle operazioni del pacchetto NuGet di determinare da dove scaricare un ID pacchetto.
Questa sezione può essere gestita manualmente solo ora.
Una packageSourceMapping
sezione può contenere packageSource
solo sezioni.
packageSource
Sezione secondaria della packageSourceMapping
sezione. Contiene un mapping che consente a NuGet di determinare se l'origine deve essere considerata per il download del pacchetto di interesse.
Chiave |
---|
Nome di un'origine del pacchetto dichiarata nella packageSources sezione . La chiave deve corrispondere esattamente alla chiave dell'origine del pacchetto. |
Le packageSource
sezioni in packageSourceMapping
sono identificate in modo univoco da key
.
package
Fa package
parte della packageSource
sezione .
Modello |
---|
Modello definito dalla sintassi del mapping dell'origine del pacchetto. |
Esempio:
<packageSourceMapping>
<packageSource key="contoso.com">
<package pattern="Contoso.*" />
</packageSource>
</packageSourceMapping>
sezione packageManagement
Imposta il formato di gestione dei pacchetti predefinito, packages.config o PackageReference. I progetti in stile SDK usano sempre PackageReference.
Chiave | valore |
---|---|
format | Valore booleano che indica il formato di gestione dei pacchetti predefinito. Se 1 , il formato è PackageReference. Se 0 , il formato è packages.config. |
disabilitato | Valore booleano che indica se visualizzare la richiesta di selezionare un formato di pacchetto predefinito al primo installazione del pacchetto. False nasconde il prompt. |
Esempio:
<packageManagement>
<add key="format" value="1" />
<add key="disabled" value="False" />
</packageManagement>
Suggerimento
Quando <clear />
è presente per un determinato nodo, NuGet ignora i valori di configurazione definiti in precedenza per tale nodo. Altre informazioni su come vengono applicate le impostazioni.
Uso delle variabili di ambiente
È possibile usare variabili di ambiente nei valori nuget.config
(NuGet 3.4 +) per applicare le impostazioni in fase di esecuzione.
Ad esempio, se la variabile di ambiente HOME
in Windows è impostata su c:\users\username
, il valore di %HOME%\NuGetRepository
nel file di configurazione viene risolto in c:\users\username\NuGetRepository
.
Si noti che è necessario usare variabili di ambiente di tipo Windows (inizia e termina con %) anche in Mac/Linux. La presenza $HOME/NuGetRepository
in un file di configurazione non verrà risolta. In Mac/Linux il valore di %HOME%/NuGetRepository
verrà risolto in /home/myStuff/NuGetRepository
.
Se non viene trovata una variabile di ambiente, NuGet usa il valore letterale dal file di configurazione. Ad esempio %MY_UNDEFINED_VAR%/NuGetRepository
, verrà risolto come path/to/current_working_dir/$MY_UNDEFINED_VAR/NuGetRepository
La tabella seguente illustra la sintassi delle variabili di ambiente e il supporto del separatore di percorso per i file NuGet.Config.
NuGet.Config
supporto delle variabili di ambiente
Sintassi | Separatore dir | Windows nuget.exe | Windows dotnet.exe | Mac nuget.exe (in 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 |
File di configurazione di esempio
Di seguito è riportato un file di esempio nuget.config
che illustra una serie di impostazioni, tra cui quelle facoltative:
<?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>