Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale şunlar için geçerlidir: ✔️ .NET Core 3.1 SDK ve sonraki sürümler
Veri Akışı Adı
dotnet restore
- Bir projenin bağımlılıklarını ve araçlarını geri yükler.
Özet
dotnet restore [<ROOT>] [--configfile <FILE>] [--disable-build-servers]
[--disable-parallel]
[-f|--force] [--force-evaluate] [--ignore-failed-sources]
[--interactive] [--lock-file-path <LOCK_FILE_PATH>] [--locked-mode]
[--no-cache] [--no-dependencies] [--packages <PACKAGES_DIRECTORY>]
[-r|--runtime <RUNTIME_IDENTIFIER>] [-s|--source <SOURCE>]
[--tl:[auto|on|off]] [--use-current-runtime, --ucr [true|false]]
[--use-lock-file] [-a|--arch <ARCHITECTURE>] [--os <OS>] [-v|--verbosity <LEVEL>]
dotnet restore -h|--help
Açıklama
.NET projesi genellikle NuGet paketlerinde ek işlevsellik sağlayan dış kitaplıklara başvurur. Bu dış bağımlılıklara proje dosyasında (.csproj veya .vbproj) başvurulur. Komutunu çalıştırdığınızda dotnet restore
,.NET CLI bu bağımlılıkları aramak ve gerekirse indirmek için NuGet kullanır. Ayrıca projenin gerektirdiği tüm bağımlılıkların birbiriyle uyumlu olmasını ve aralarında çakışma olmamasını sağlar. Komut tamamlandıktan sonra, projenin gerektirdiği tüm bağımlılıklar yerel önbellekte kullanılabilir ve uygulamayı derlemek ve çalıştırmak için .NET CLI tarafından kullanılabilir.
Çoğu durumda, NuGet geri yüklemesi gerekiyorsa aşağıdaki komutlar bunu örtük olarak çalıştırdığından komutunu açıkça kullanmanız dotnet restore
gerekmez:
Bazen, bu komutlarla örtük NuGet geri yüklemesini çalıştırmak zor olabilir. Örneğin, derleme sistemleri gibi bazı otomatik sistemlerin, ağ kullanımını denetleyebilmeleri için geri yüklemenin ne zaman gerçekleşebileceğini denetlemek için açıkça çağırmaları dotnet restore
gerekir. Örtük NuGet geri yüklemesini önlemek için bayrağını --no-restore
bu komutlardan herhangi biriyle kullanabilirsiniz.
Not
Geri yükleme işlemleri sırasında imzalanan paket doğrulaması, hem kod imzalama hem de zaman damgası için geçerli bir sertifika kök deposu gerektirir. Daha fazla bilgi için bkz. NuGet imzalı paket doğrulama.
Akışları belirtme
Bağımlılıkları geri yüklemek için NuGet'in paketlerin bulunduğu akışlara ihtiyacı vardır. Akışlar genellikle nuget.config yapılandırma dosyası aracılığıyla sağlanır. .NET SDK yüklendiğinde varsayılan bir yapılandırma dosyası sağlanır. Ek akışlar belirtmek için aşağıdakilerden birini yapın:
- Proje dizininde kendi nuget.config dosyanızı oluşturun. Daha fazla bilgi için bu makalenin devamında yer alan Yaygın NuGet yapılandırmaları ve nuget.config farklılıkları bölümüne bakın.
- gibi
dotnet nuget
komutları kullanındotnet nuget add source
.
nuget.config.
Kimliği doğrulanmış akışları kullanma hakkında bilgi için bkz . Kimliği doğrulanmış akışlardan paketleri kullanma.
Genel paketler klasörü
Bağımlılıklar için, geri yüklenen paketlerin geri yükleme işlemi sırasında nereye yerleştirileceğini bağımsız değişkenini --packages
kullanarak belirtebilirsiniz. Belirtilmezse, tüm işletim sistemlerinde kullanıcının giriş dizinindeki dizinde .nuget/packages
bulunan varsayılan NuGet paket önbelleği kullanılır. Örneğin, Linux'ta /home/user1 veya Windows'da C:\Users\user1 .
Projeye özgü araçlar
Projeye özgü araçlar için önce dotnet restore
aracın paketlendiği paketi geri yükler ve ardından aracın bağımlılıklarını proje dosyasında belirtildiği gibi geri yüklemeye devam eder.
nuget.config farklılıkları
Komutun dotnet restore
davranışı, varsa nuget.config dosyasındaki ayarlardan etkilenir. Örneğin, nuget.configglobalPackagesFolder
ayarının ayarlanması, geri yüklenen NuGet paketlerini belirtilen klasöre yerleştirir. Bu, komutta seçeneğini belirtmeye --packages
dotnet restore
alternatiftir. Daha fazla bilgi için nuget.config başvurusuna bakın.
Yoksayılan dotnet restore
üç özel ayar vardır:
-
Bağlama yeniden yönlendirmeleri öğelerle
<PackageReference>
çalışmaz ve .NET yalnızca NuGet paketleri için öğeleri destekler<PackageReference>
. -
Bu ayar Visual Studio'ya özgüdür ve .NET için geçerli değildir. .NET bir
packages.config
dosya kullanmaz ve bunun yerine NuGet paketleri için öğeleri kullanır<PackageReference>
. -
.NET 5.0.100 SDK'sında platformlar arası paket imzası doğrulaması desteği eklendi.
İş yükü bildirimi indirmeleri
Bu komutu çalıştırdığınızda, iş yükleri için reklam bildirimlerini zaman uyumsuz bir arka plan indirme işlemi başlatır. Bu komut tamamlandığında indirme işlemi hala çalışıyorsa indirme durdurulur. Daha fazla bilgi için bkz . Reklam bildirimleri.
Bağımsız değişkenler
ROOT
Geri yükleneceği proje dosyasının isteğe bağlı yolu.
Seçenekler
-a|--arch <ARCHITECTURE>
Hedef mimariyi belirtir. Bu, sağlanan değerin varsayılan RID ile birleştirildiği Çalışma Zamanı Tanımlayıcısı'nı (RID) ayarlamak için bir kısaltma söz dizimidir. Örneğin, bir
win-x64
makinede, belirterek--arch x86
RID değerini olarakwin-x86
ayarlar. Bu seçeneği kullanırsanız, seçeneğini kullanmayın-r|--runtime
. .NET 6 Preview 7 sürümünden itibaren kullanılabilir.
--configfile <FILE>
Kullanılacak NuGet yapılandırma dosyası (nuget.config). Belirtilirse, yalnızca bu dosyadaki ayarlar kullanılır. Belirtilmezse, geçerli dizindeki yapılandırma dosyalarının hiyerarşisi kullanılır. Daha fazla bilgi için bkz . Yaygın NuGet Yapılandırmaları.
--disable-build-servers
Komutu kalıcı derleme sunucularını yoksaymaya zorlar. Bu seçenek, derleme önbelleğinin tüm kullanımını devre dışı bırakmak için tutarlı bir yol sağlar ve bu da bir derlemeyi sıfırdan zorlar. Önbelleklere güvenmeyen bir derleme, önbellekler herhangi bir nedenle bozulduğunda veya yanlış olduğunda kullanışlıdır. .NET 7 SDK'sı ile kullanılabilir.
--disable-parallel
Birden çok projenin paralel olarak geri yüklenmesini devre dışı bırakır.
--force
Son geri yükleme başarılı olsa bile tüm bağımlılıkların çözümlenmesine zorlar. Bu bayrağın belirtilmesi, project.assets.json dosyasını silmekle aynıdır.
--force-evaluate
Bir kilit dosyası zaten mevcut olsa bile geri yüklemeyi tüm bağımlılıkları yeniden değerlendirmeye zorlar.
-?|-h|--help
komutunun nasıl kullanılacağına ilişkin bir açıklama yazdırır.
--ignore-failed-sources
Yalnızca sürüm gereksinimini karşılayan paketler varsa başarısız kaynaklar hakkında uyarır.
--interactive
Komutun durmasına ve kullanıcı girişini veya eylemini beklemesine izin verir. Örneğin, kimlik doğrulamasını tamamlamak için.
--lock-file-path <LOCK_FILE_PATH>
Proje kilit dosyasının yazıldığı çıkış konumu. Varsayılan olarak, bu PROJECT_ROOT\packages.lock.json'dır.
--locked-mode
Proje kilit dosyasını güncelleştirmeye izin verme.
--no-cache
HTTP isteklerini önbelleğe almamak için belirtir.
--no-dependencies
Projeden projeye (P2P) başvurularla bir projeyi geri yüklerken, başvuruları değil kök projeyi geri yükler.
--packages <PACKAGES_DIRECTORY>
Geri yüklenen paketlerin dizinini belirtir.
-r|--runtime <RUNTIME_IDENTIFIER>
Paket geri yükleme için bir çalışma zamanı belirtir. Bu, .csproj
<RuntimeIdentifiers>
açıkça listelenmeyen çalışma zamanları için paketleri geri yüklemek için kullanılır. Çalışma Zamanı Tanımlayıcılarının (RID) listesi için RID kataloğuna bakın.-s|--source <SOURCE>
Geri yükleme işlemi sırasında kullanılacak NuGet paket kaynağının URI'sini belirtir. Bu ayar, nuget.config dosyalarında belirtilen tüm kaynakları geçersiz kılar. Bu seçenek birden çok kez belirtilerek birden çok kaynak sağlanabilir.
--tl:[auto|on|off]
Derleme çıkışı için terminal günlükçüsunun kullanılıp kullanılmayacağını belirtir. Varsayılan değer, terminal günlüğünü etkinleştirmeden önce ortamı doğrulayan değeridir
auto
. Ortam denetimi, terminalin modern çıkış özelliklerini kullanabileceğini ve yeni günlükçü'leri etkinleştirmeden önce yeniden yönlendirilmiş standart çıkış kullanmadığını doğrular.on
ortam denetimini atlar ve terminal günlüğünü etkinleştirir.off
ortam denetimini atlar ve varsayılan konsol günlükçüsüsü kullanır.Terminal günlükçü, geri yükleme aşamasını ve ardından derleme aşamasını gösterir. Her aşamada, şu anda oluşturulan projeler terminalin en altında görünür. Derlemeye alınan her proje, hem şu anda derlenen MSBuild hedefini hem de bu hedefe harcanan süreyi oluşturur. Derleme hakkında daha fazla bilgi edinmek için bu bilgileri arayabilirsiniz. Bir projenin oluşturulması tamamlandığında, şunları yakalayan tek bir "derleme tamamlandı" bölümü yazılır:
- Oluşturulan projenin adı.
- Hedef çerçeve (çok hedefliyse).
- Bu derlemenin durumu.
- Bu derlemenin birincil çıkışı (köprüdür).
- Bu proje için oluşturulan tüm tanılamalar.
Bu seçenek .NET 8'den itibaren kullanılabilir.
--use-current-runtime, --ucr [true|false]
öğesini
RuntimeIdentifier
makinenizden birine göre taşınabilirRuntimeIdentifier
bir platforma ayarlar. Bu, veRuntimeIdentifier
gibiSelfContained
PublishAot
PublishSelfContained
PublishSingleFile
birPublishReadyToRun
gerektiren özelliklerde örtük olarak gerçekleşir. Özelliği false olarak ayarlanırsa, bu örtük çözüm artık gerçekleşmez.--use-lock-file
Proje kilit dosyasının oluşturulmasını ve geri yükleme ile kullanılmasını sağlar.
-a|--arch
Hedef mimariyi belirtir. Bu, sağlanan değerin varsayılan RID ile birleştirildiği Çalışma Zamanı Tanımlayıcısı'nı (RID) ayarlamak için bir kısaltma söz dizimidir. Örneğin, bir
win-x64
makinede, belirterek--arch arm64
RID değerini olarakwin-arm64
ayarlar..NET SDK 8.0.100 ile kullanıma sunulmuştur
--os
Hedef işletim sistemini (OS) belirtir. Bu, sağlanan değerin varsayılan RID ile birleştirildiği Çalışma Zamanı Tanımlayıcısı'nı (RID) ayarlamak için bir kısaltma söz dizimidir. Örneğin, bir
win-x64
makinede, belirterek--os linux
RID değerini olaraklinux-x64
ayarlar..NET SDK 10.0.100 ile kullanıma sunulmuştur
-v|--verbosity <LEVEL>
Komutun ayrıntı düzeyini ayarlar. İzin verilen değerler ,
q[uiet]
,m[inimal]
,n[ormal]
ved[etailed]
değerleridirdiag[nostic]
. Varsayılan değer:minimal
. Daha fazla bilgi için bkz. LoggerVerbosity.
Örnekler
Geçerli dizinde proje için bağımlılıkları ve araçları geri yükleyin:
dotnet restore
Verilen yolda bulunan proje için
app1
bağımlılıkları ve araçları geri yükleyin:dotnet restore ./projects/app1/app1.csproj
Kaynak olarak sağlanan dosya yolunu kullanarak geçerli dizindeki projenin bağımlılıklarını ve araçlarını geri yükleyin:
dotnet restore -s c:\packages\mypackages
Kaynak olarak sağlanan iki dosya yolunu kullanarak geçerli dizindeki projenin bağımlılıklarını ve araçlarını geri yükleyin:
dotnet restore -s c:\packages\mypackages -s c:\packages\myotherpackages
Ayrıntılı çıktıyı gösteren geçerli dizinde projenin bağımlılıklarını ve araçlarını geri yükleyin:
dotnet restore --verbosity detailed
Güvenlik açıklarını denetleme
.NET 8'den dotnet restore
başlayarak NuGet güvenlik denetimini içerir. Bu denetim, etkilenen paket adına, güvenlik açığının önem derecesine ve daha fazla ayrıntı için öneriye yönelik bir bağlantı içeren bir güvenlik açıkları raporu oluşturur.
Güvenlik denetimini geri çevirmek için proje dosyanızda MSBuild özelliğini olarak <NuGetAudit>
ayarlayınfalse
.
Bilinen güvenlik açığı veri kümesini almak için NuGet.org merkezi kayıt defterinin paket kaynaklarınızdan biri olarak tanımlandığından emin olun:
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
MSBuild özelliğini ayarlayarak <NuGetAuditLevel>
denetimin başarısız olacağı düzeyi yapılandırabilirsiniz. Olası değerler , , low
moderate
ve high
değerleridircritical
. Örneğin, yalnızca orta, yüksek ve kritik öneriler görmek istiyorsanız özelliğini olarak moderate
ayarlayabilirsiniz.
.NET 8 ve .NET 9'da varsayılan olarak yalnızca doğrudan paket başvuruları denetlenmektedir. .NET 10'dan başlayarak NuGet hem doğrudan hem de geçişli paket başvurularını varsayılan olarak denetler. MSBuild özelliğini <NuGetAuditMode>
veya direct
olarak ayarlayarak all
modu değiştirebilirsiniz.
Daha fazla bilgi için bkz . Güvenlik açıkları için paket bağımlılıklarını denetleme.