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>