nuget.config Başvuru

NuGet davranışı, Ortak uygulama yapılandırmaları altında açıklandığı gibi NuGet.Confignuget.config farklı veya NuGet.Config

nuget.config , daha sonra bu konuda açıklanan bölüm öğelerini içeren üst düzey düğüm içeren bir XML <configuration> dosyasıdır. Her bölüm sıfır veya daha fazla öğe içerir. Örnekler yapılandırma dosyasına bakın. Ayar adları büyük/büyük/büyük harfe duyarlı değildir ve değerler ortam değişkenlerini kullanabilir.

config bölümü

komutu kullanılarak ayarlansa da çeşitli yapılandırma ayarlarını içerir.

dependencyVersion ve repositoryPath yalnızca kullanan projelere packages.config uygulanır. globalPackagesFolder yalnızca PackageReference biçimini kullanan projeler için geçerlidir.

Anahtar Değer
dependencyVersion packages.config (yalnızca) Anahtar DependencyVersion doğrudan belirtilmediyse paket yükleme, geri yükleme ve güncelleştirme -DependencyVersion için varsayılan değer. Bu değer, kullanıcı arabirimi tarafından NuGet Paket Yöneticisi kullanılır. Değerler : LowestHighestPatch , , , HighestMinorHighest .
globalPackagesFolder (yalnızca PackageReference kullanan projeler) Varsayılan genel paketler klasörünün konumu. Varsayılan değer %userprofile%\.nuget\packages (Windows) veya ~/.nuget/packages (Mac/Linux) değeridir. Projeye özgü dosyalarda göreli yol nuget.config kullanılabilir. Bu ayar, öncelikli olan NUGET_PACKAGES ortam değişkeni tarafından geçersiz kılınır.
repositoryPath packages.config (yalnızca) Varsayılan klasör yerine NuGet yükleme $(Solutiondir)/packages konumu. Projeye özgü dosyalarda göreli yol nuget.config kullanılabilir. Bu ayar, öncelikli olan NUGET_PACKAGES ortam değişkeni tarafından geçersiz kılınır.
defaultPushSource Bir işlem için başka paket kaynağı bulunamasa varsayılan olarak kullanılacak paket kaynağının URL'sini veya yolunu tanımlar.
http_proxy http_proxy.user http_proxy.password no_proxy Paket kaynaklarına bağlanırken kullanmak üzere ara sunucu ayarları; http_proxy biçiminde http://<username>:<password>@<domain> olmalıdır. Parolalar şifrelenir ve el ile eklenmez. için, no_proxy değeri proxy sunucusunu atlayan etki alanlarının virgülle ayrılmış bir listesidir. Alternatif olarak bu değerler için http_proxy ve no_proxy değişkenlerini kullanabilirsiniz. Ek ayrıntılar için bkz. NuGet ara sunucu ayarları (skolima.blogspot.com).
signatureValidationMode Paket yükleme ve geri yükleme için paket imzalarını doğrulamak için kullanılan doğrulama modunu belirtir. Değerler : accept , require . Varsayılan olarak accept kullanılır.

Örnek:

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

bindingRedirects bölümü

Bir paket NuGet otomatik bağlama yönlendirmesi olup olmadığını yapılandıran.

Anahtar Değer
Atla Otomatik bağlama yeniden yönlendirmelerini atlayıp atlamayca gerektiğini belirten Boole. Varsayılan değer false.

Örnek:

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

packageRestore bölümü

Derlemeler sırasında paket geri yüklemesini kontrol eder.

Anahtar Değer
enabled Otomatik geri yükleme gerçekleştirip gerçekleştire NuGet boolean. Ortam değişkenlerini, EnableNuGetPackageRestore yapılandırma dosyasında bu anahtarı ayarlamak yerine True değeriyle de değiştirebilirsiniz.
otomatik Derleme sırasında eksik paketleri denetlemesi NuGet olup olmadığını belirten Boole.

Örnek:

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

çözüm bölümü

Bir çözümün packages klasörünün kaynak denetimine dahil olup olmadığını kontrol eder. Bu bölüm yalnızca bir nuget.config çözüm klasöründeki dosyalarda çalışır.

Anahtar Değer
disableSourceControlIntegration Kaynak denetimiyle çalışırken packages klasörünün yoksayıp yoksaymaymak gerektiğini belirten Boole. Varsayılan değer false'tur.

Örnek:

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

Paket kaynağı bölümleri

, , , , ve hepsi birlikte çalışır ve yükleme, NuGet, geri yükleme ve güncelleştirme işlemleri sırasında paket depoları ile nasıl packageSourcespackageSourceCredentials çalıştığını apikeysactivePackageSourcedisabledPackageSourcestrustedSignerspackageSourceMapping yapılandırabilirsiniz.

komutu genellikle, komutu kullanılarak yönetilen ve komutu kullanılarak yönetilen dışında apikeys bu ayarları yönetmek için apikeystrustedSignersnuget setapikey

için kaynak URL'nin olduğunu https://api.nuget.org/v3/index.json nuget.org.

packageSources

Bilinen tüm paket kaynaklarını listeler. Sıralama, geri yükleme işlemleri sırasında ve PackageReference biçimi kullanılarak herhangi bir proje ile yoksayılır. NuGet, kullanarak projelerle yükleme ve güncelleştirme işlemleri için kaynakların sırasına uygun olarak packages.config gelir.

Anahtar Değer
(paket kaynağına atanacak ad) Paket kaynağının yolu veya URL'si.

Örnek:

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

İpucu

Belirli <clear /> bir düğüm için mevcut olduğunda, NuGet düğüm için daha önce tanımlanmış yapılandırma değerlerini yoksayar. Ayarların nasıl uygulandığı hakkında daha fazla bilgi okuyun.

packageSourceCredentials

Genellikle ve anahtarları ile belirtilen kaynaklar için kullanıcı adlarını ve -username-password parolalarını nuget sources depolar. Seçenek de kullanılmadıkça parolalar -storepasswordincleartext varsayılan olarak şifrelenir. İsteğe bağlı olarak, anahtarla geçerli kimlik doğrulama türleri -validauthenticationtypes belirtilebilir.

Anahtar Değer
username Kaynağın kullanıcı adı düz metin.
password Kaynak için şifrelenmiş parola. Şifrelenmiş parolalar yalnızca sanal makinede Windows ve yalnızca aynı makinede ve özgün şifreleme ile aynı kullanıcı aracılığıyla kullanılırken şifreleri çözülebilirsiniz.
cleartextpassword Kaynağın şifrelenmemiş parolası. Not: Ortam değişkenleri gelişmiş güvenlik için kullanılabilir.
validauthenticationtypes Bu kaynak için geçerli kimlik doğrulama türlerinin virgülle ayrılmış listesi. Sunucu NTLM veya Negotiate'i tanıtıyorsa ve kimlik bilgilerinizin Temel mekanizma kullanılarak (örneğin, şirket içi güvenlik bilgileriyle PAT) gönderilsin mi basic Azure DevOps Server. Diğer geçerli değerler negotiate arasında , , ve yer alan ancak bu kerberosntlmdigest değerlerin kullanışlı olması pek olası değildir.

Örnek:

Yapılandırma dosyasında öğesi, her uygun kaynak adı için alt düğümler içerir <packageSourceCredentials> (adda boşluklar ile _x0020_ değiştirilir). Diğer bir ifadeyle, "Contoso" ve "Test Kaynağı" adlı kaynaklar için, yapılandırma dosyası şifrelenmiş parolalar kullanırken şunları içerir:

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

Ortam değişkensinde depolanan şifrelenmemiş parolalar kullanırken:

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

Şifrelenmemiş parolalar kullanırken:

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

Ayrıca geçerli kimlik doğrulama yöntemleri de sağlanmalıdır:

<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

API anahtarı kimlik doğrulaması kullanan kaynakların anahtarlarını komutuyla ayarlanmış şekilde depolar.

Anahtar Değer
(kaynak URL) Şifrelenmiş API anahtarı.

Örnek:

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

disabledPackageSources

Şu anda devre dışı bırakılmış kaynaklar tanımlandı. Boş olabilir.

Anahtar Değer
(kaynağın adı) Kaynağın devre dışı bırakılabilir olup olmadığını belirten bir Boole.

Örnek:

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

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

activePackageSource

(yalnızca 2.x; 3.x+'da kullanım dışıdır)

O anda etkin olan kaynağı tanımlar veya tüm kaynakların toplanmış olduğunu gösterir.

Anahtar Değer
(kaynağın adı) veya All Anahtar bir kaynağın adı ise değer kaynak yolu veya URL'dir. ise, All aksi takdirde devre dışı bırakılmış tüm paket kaynaklarını birleştirmek için değer olması (Aggregate source) gerekir.

Örnek:

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

trustedSigners bölümü

Yükleme veya geri yükleme sırasında pakete izin vermek için kullanılan güvenilen imzaıcıları depolar. Kullanıcı olarak ayarlarken bu liste boş signatureValidationModerequire olamaz.

Bu bölüm komutuyla güncelleştirilebilir.

Şema:

Güvenilen bir imzayı imzaya sahip certificate olan bir öğe koleksiyonu, verilen bir imzayı tanıyın tüm sertifikaları listelemektedir. Güvenilen imzayı imzalar veya AuthorRepository olabilir.

Güvenilir depo ayrıca depo için (geçerli bir uri olması gerekir) belirtir ve isteğe bağlı olarak, o depodan daha fazla güvenilir olanı kısıtlamak için noktalı virgülle ayrılmış listesini httpsowners belirtebilirsiniz.

Sertifika parmak izi için kullanılan desteklenen karma algoritmalar , ve SHA256SHA384 'tir. SHA512

, sertifika zincirini imza doğrulamasının bir parçası olarak hazırlarken verilen sertifikanın güvenilmeyen bir köke certificateallowUntrustedRoot zincirlemesine izin true verildiğini belirtirse.

Örnek:

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

fallbackPackageFolders bölümü

(3,5+) Paket geri dönüş klasörlerinde bulunursa hiçbir iş yapılması gerekmey için paketleri önceden yüklemenin bir yolunu sağlar. Geri dönüş paketi klasörleri, genel paket klasörüyle tam olarak aynı klasöre ve dosya yapısına sahiptir: .nupkg bulunur ve tüm dosyalar ayıklanır.

Bu yapılandırma için arama mantığı şöyledir:

  • Paketin/sürümün zaten indirilmiş olup olduğunu görmek için genel paket klasörüne bakın.

  • Paket/sürüm eşleşmesi için geri dönüş klasörlerine bakın.

Arama başarılı olursa indirme gerekmez.

Eşleşme bulunamıyorsa, dosya NuGet ve http kaynaklarını denetler ve ardından paketleri indirir.

Anahtar Değer
(geri dönüş klasörünün adı) Geri dönüş klasörünün yolu.

Örnek:

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

Paket kaynağı eşleme bölümü

bölümü, packageSourceMapping paket işlemlerinin paket NuGet indirmesi gereken yeri belirlemesine yardımcı olan ayrıntıları içerir.

Bu bölüm şu anda yalnızca el ile yönetilebilir.

Bir packageSourceMapping bölüm yalnızca bölümler packageSource içerebilir.

packageSource

Bölümün bir alt packageSourceMapping bölümü. Kaynağın ilgi NuGet için dikkate alınıp alınmayacaklarını belirlemeye yardımcı olacak bir eşleme içerir.

Anahtar
bölümünde bildirilen paket kaynağının packageSources adı. Anahtarın paket kaynağının anahtarıyla tam olarak eşleşmesi gerekir.

altındaki packageSource bölümler tarafından benzersiz olarak packageSourceMappingkey tanımlanır.

package

package, bölümünün bir packageSource parçasıdır.

Desen
Paket Kaynağı eşleme söz dizimi ile tanımlanan bir desen.

Örnek:

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

packageManagement bölümü

Varsayılan paket yönetimi biçimini packages.configPackageReference olarak ayarlar. SDK stili projeler her zaman PackageReference kullanır.

Anahtar Değer
biçim Varsayılan paket yönetim biçimini gösteren bir Boole değeri. ise, 1 format PackageReference olur. , 0 biçimi 0isepackages.config.
devre dışı İlk paket yüklemesi için varsayılan paket biçimini seçme isteminin gösterip gösterileb olmadığını belirten Boole değeri. False istemi gizler.

Örnek:

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

İpucu

Belirli <clear /> bir düğüm için mevcut olduğunda, NuGet düğüm için daha önce tanımlanmış yapılandırma değerlerini yoksayar. Ayarların nasıl uygulandığı hakkında daha fazla bilgi okuyun.

Ortam değişkenlerini kullanma

Çalışma zamanında ayarları uygulamak için nuget.config değerlerde (NuGet 3.4+) ortam değişkenlerini kullanabilirsiniz.

Örneğin, yapılandırma HOME dosyasındaki ortam Windows olarak c:\users\username ayarlanırsa, yapılandırma %HOME%\NuGetRepository dosyasındaki değeri olarak c:\users\username\NuGetRepository çözümler.

Mac/Linux'ta Windows ortam değişkenlerini (ile başlar ve biter) kullanmak zorunda olduğunu unutmayın. Yapılandırma $HOME/NuGetRepository dosyasında olması çözümlenemz. Mac/Linux'ta değeri %HOME%/NuGetRepository olarak çözümlemektedir. /home/myStuff/NuGetRepository

Bir ortam değişkeni bulunamasa NuGet yapılandırma dosyasındaki değişmez değeri kullanır. Örneğin, %MY_UNDEFINED_VAR%/NuGetRepository olarak çözümlenir path/to/current_working_dir/$MY_UNDEFINED_VAR/NuGetRepository

Aşağıdaki tabloda ortam değişkeni söz dizimi ve dosya türü için yol ayırıcı desteği NuGet.Config gösterilmiştir.

NuGet.Config ortam değişkeni desteği

Syntax Dir ayırıcısı Windows nuget.exe Windows dotnet.exe Mac nuget.exe (Mono olarak) Mac dotnet.exe
%MY_VAR% / Yes Yes Yes Yes
%MY_VAR% \ Yes Yes Hayır Hayır
$MY_VAR / Hayır Hayır Hayır Hayır
$MY_VAR \ Hayır Hayır Hayır Hayır

Örnek yapılandırma dosyası

Aşağıda isteğe bağlı nuget.config olanlar da dahil olmak üzere bir dizi ayarı gösteren örnek bir dosya verilmiştir:

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