NuGet 6.0 Sürüm Notları
NuGet dağıtım araçları:
NuGet sürümü | Visual Studio sürümünde kullanılabilir | .NET SDK'larında kullanılabilir |
---|---|---|
6.0.0 | Visual Studio 2022 sürüm 17.0.0 | 6.0.01 |
6.0.1 | Visual Studio 2022 sürüm 17.0.2 | Yok |
6.0.2 | Visual Studio 2022 sürüm 17.0.11 | 6.0.3011 |
6.0.3 | Visual Studio 2022 sürüm 17.0 | 6.0.1101 |
6.0.5 | Yok | 6.0.1181 |
6.0.6 | Yok | 6.0.1271 |
1 Visual Studio 2022 with.NET Core iş yüküyle yüklendi
Özet: 6.0.6 Sürümündeki Yenilikler
- [Güvenlik]: Microsoft Güvenlik Danışmanlığı CVE-2024-0057 | NuGet İstemciSi Güvenlik Özelliğini Atlama Güvenlik Açığı - #12653
Özet: 6.0.5 Sürümündeki Yenilikler
- [Güvenlik]: Microsoft Güvenlik Danışmanlığı CVE-2023-29337 | NuGet İstemcisi Uzaktan Kod Yürütme Güvenlik Açığı - #12653
Not
Linux'ta hataya neden olan bir davranış değişikliği vardır. NuGet'in çeşitli işlemleri sırasında geçici dosyaları depoladığı geçici klasör konumu olarak değiştirildi /tmp/NuGetScratch
/tmp/NuGetScratch<username>
. Örneğin User1 kullanıcısı için geçici klasör olacaktır /tmp/NuGetScratchUser1
.
Özet: 6.0.3 Sürümündeki Yenilikler
- [Güvenlik]: Microsoft Güvenlik Önerisi CVE-2022-41032 | .NET Ayrıcalıkların Yükseltilmesi Güvenlik Açığı - #12149
Not
Visual Studio 17.0, MSBuild 17.0 ve .NET 6.0 için NuGet.exe 6.0 veya üzeri gerekir.
Özet: 6.0.2 Sürümündeki Yenilikler
- [Güvenlik]: Microsoft Güvenlik Önerisi CVE 2022-30184 | .NET Bilgilerinin Açığa Çıkması Güvenlik Açığı - #11883
Özet: 6.0.0 Sürümündeki Yenilikler
🎉 Bu, .NET 6.0'ı 🎉 hedefleyen NuGet paketleri için tam yazma ve geri yükleme desteği sunan ilk sürümdür
.NET 6 Desteği
NuGet 6.0, .NET 6.0'ı hedefleyen NuGet paketleri için tam yazma ve geri yükleme desteği sunan ilk sürümdür. Artık aşağıdaki hedef çerçeveleri hedefleyebilirsiniz:
- net6.0
- net6.0-windows
- net6.0-android
- net6.0-ios
- net6.0-macos
- net6.0-maccatalyst
- net6.0-tvos
- net6.0-tizen
.NET 6.0 hedeflerini bugün veya gelecekte nasıl görüneceğini bilmiyorsanız.NET 6.0 TFM belirtimini gözden geçirin.
Kaynak Eşleme
Bu yılın başlarında, birçok paket yöneticisi bir kullanıcının hedefledikleri bağımlılık yerine kötü amaçlı bir bağımlılığı yüklemek için kandırılacağı bağımlılık karışıklığı saldırılarının farkına vardı. Yazılım tedarik zincirinizi bu saldırılara karşı desteklemek için NuGet ekibi bağımlılıklarınızı belirli kaynaklarla eşlemenizi sağlayan yeni bir özellik geliştirdi. Aşağıda, projelerinizi korumak için kaynak eşlemeyi nasıl kullanabileceğinizi gösteren bir örnek verilmiştir.
<!-- Define a global packages folder for your repository. -->
<!-- This is where installed packages will be stored locally. -->
<config>
<add key="globalPackagesFolder" value="globalPackagesFolder" />
</config>
<!-- Define my package sources, nuget.org and contoso.com. -->
<!-- `clear` ensures no additional sources are inherited from another config file. -->
<packageSources>
<clear />
<!-- `key` can be any identifier for your source. -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="contoso.com" value="https://contoso.com/packages/" />
</packageSources>
<!-- Define mappings by adding package ID patterns beneath the target source. -->
<!-- Contoso.* packages will be restored from contoso.com, everything else from nuget.org. -->
<packageSourceMapping>
<!-- key value for <packageSource> should match key values from <packageSources> element -->
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
<packageSource key="contoso.com">
<package pattern="Contoso.*" />
</packageSource>
</packageSourceMapping>
Bu yılın başlarında yayınlanan blogumuzda kaynak eşleme hakkında daha fazla bilgi edinebilirsiniz.
Visual Studio'da Paket Güvenlik Açıkları
Visual Studio'da NuGet Paket Yöneticisi kullanırken, artık paketleriniz için paket güvenlik açıklarının yanı sıra güvenlik açıklarının sayısı ve önem derecesi gibi ayrıntıların yanı sıra öneriler hakkında daha fazla bilgi edinmek için doğrudan bağlantılar göreceksiniz.
Yeniden Deneme ve Geri Alma Davranışı
Artık NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY
NuGet istemcilerinin yeniden deneme ve geri alma davranışını iyileştirmeye yönelik, en yüksek yeniden deneme miktarını artırma ve daha zayıf bir internet bağlantısıyla karşılaşıldığında daha dayanıklı bir deneyim için gecikmeyi artırma gibi bir bayrak vardır.
Varsayılan Dosya Uzantılarını Dışla
Artık MSBuild bayrağını <AllowedOutputExtensionsInPackageBuildOutputFolder>
kullanarak paketinizin derleme çıkışına dahil edilen dosya uzantılarını düzenleyebilirsiniz. Bu, derleme çıktı klasörünüzde yer alan uzantılar üzerinde daha fazla denetim sağlar.
Visual Studio'da Geliştirilmiş KullanımDan Kaldırma Bilgileri
Visual Studio'da kullanım dışı bırakılan paketler artık kullanılması önerilen alternatif paketin bağlantısını içeriyor. Bu özelliği, etkin bir şekilde tutulan paketlere hızla göz atmak ve bunları yüklemek için kullanabilirsiniz.
Visual Studio'da PAKET BENİOKU ekleme
Artık doğrudan Visual Studio'da bir paket README.md dosyası ekleyebilirsiniz. BENİOKU, paketinizle ilgili önemli bilgileri iletmenize yardımcı olur. Genellikle bir ziyaretçinin paketinizi NuGet.org ziyaret ederken göreceği ilk öğedir. README dosyaları genellikle aşağıdakiler hakkında bilgi içerir:
- Paket ne yapar?
- Paket neden yararlıdır?
- Kullanıcılar paketi kullanmaya nasıl başlayabilir?
- Kullanıcıların yardım alabildiği veya paketinize katkıda bulunabileceği yerler
NuGet paketinize BENIOKU ekleme hakkında daha fazla bilgiyi blogumuzdan okuyabilirsiniz.
Visual Studio'da Daha Hızlı Çözüm Yükü ve Dal Geçişi
Visual Studio 2022'de NuGet, birden çok kez yerine yalnızca bir kez geri yüklemeyi çağırarak büyük çözümlerin performansını artırmak için NuGet paketi geri yükleme ile yaygın Visual Studio bileşenleri arasındaki sözleşmeyi yeniden tanımladı. Bu, arka plan işlemlerinin tamamlanması için gereken süreyi önemli ölçüde artırır.
Visual Studio 2022 Preview'ı yükleyin ve büyük çözümlerinizi yüklerken veya dallar arasında geçiş yaparken daha hızlı bir deneyim fark ederseniz bize bildirin!
NuGet'in SolutionRestoreManager Visual Studio API'leri NuGet.VisualStudio paketine taşındı
NuGet.SolutionRestoreManager.Interop artık güncelleştirilmez ve API'leri NuGet.VisualStudio paketiyle birleştirilmiştir. Mevcut bir Visual Studio uzantısını Visual Studio 2022 (17.0) ile çalışacak şekilde güncelleştiriyorsanız ve daha önce NuGet.SolutionRestoreManager.Interop kullanıyorsanız, bu paketi kaldırmanız ve NuGet.VisualStudio'yu 6.0.0 sürümüne yükseltmeniz/yüklemeniz gerekir. Ad alanları ve sınıflar aynı kalır, bu nedenle API perspektifinden uyumludur.
Ayrıca, Visual Studio'nun ilkedeki değişikliğini izleyen NuGet.VisualStudio artık kullanmazEmbedInteropTypes
.
Bu nedenle, uzantınız NuGet.VisualStudio.dll için bir derleme zamanı başvurusuna sahip olur.
Nuget, Visual Studio'ya bağlama yeniden yönlendirmelerini kullanma talimatını verdiği için NuGet daha yeni sürümlere güncelleştirildiğinde ve uzantınız derlememizin eski bir sürümünde derlendiğinde uzantınız etkilenmez.
Bu nedenle, indirme boyutunu azaltmak için NuGet'in derlemelerini vsix'inizden gizleyebilirsiniz.
NuGet paketleri, NuGet 6.2'de (Visual Studio 17.2 için) bunu otomatik olarak yapacak şekilde güncelleştirilecektir.
Vsix'inizden NuGet'in derlemelerini engellemek için proje dosyanıza aşağıdakileri ekleyin:
<ItemGroup>
<SuppressFromVsix Include="NuGet.VisualStudio.dll" Visible="false" />
<SuppressFromVsix Include="NuGet.VisualStudio.Contracts.dll" Visible="false" />
</ItemGroup>
Özellikler:
Nuget paketinden belirli derleme çıktı uzantılarını dışlamak için kanca ekleme - #10690
net6.0+ kullanırken xamarin TFM'leri için yeni öncelik uygulama - #10717
Net6.0+ projeleri için xamarin.ios'a "geri dönerken" maccatalyst uyarısı uygulama - #10718
Yapılandırmanın bir parçası olarak paket ad alanı desteği ekleme - yalnızca okuma özelliği ekleme - #10725
Paket Ad Alanları: PackageReference geri yüklemesinde paket indirme işleminde paket ad alanlarını filtreleme hesabı - #10732
nuget.exe ve msbuild /t:restore içinde packages.config geri yüklemesinde ad alanları filtreleme desteği ekleme - #10737
Daha iyi toplu geri yükleme/dal anahtarları elde etmeye yardımcı olmak için bir geri yükleme kaynağını tanımlamaya yönelik bir sözleşme ekleyin. - #10807
net6.0-tizen ve net6.0-android için destek ekleme - #10819
Visual Studio'da packages.config geri yükleme için ad alanları filtreleme desteği ekleme - #10823
İç derlemede semboller sağlamak için TfmSpecificDebugSymbolsFile desteği eklendi - #10913
Güvenlik açığı olan paketler yüklüyse, Yüklü sekmesinde uyarı simgesini göster - #10982
Bir güvenlik açığı varsa paketler listesinde pakete göre uyarı simgesini göster - #10983
PMUI'nin paket ayrıntıları bölmesinde paket güvenlik açığı ayrıntılarını göster - #10985
PM kullanıcı arabirimindeki Ayrıntılar sayfasına Kullanımdan Kaldırma Bağlantıları Ekleme - #10996
[Özellik]: Nuget İstemcileri için yeniden deneme sayısını ve geri alma davranışını yapılandırılabilir hale getirme - #11027
[Özellik]: PackageReference ve PackageDownload senaryolarında çalışan paket ad alanları için tüm paket yükleme kurallarını ele alın. - #11035
[Özellik]: Paket ad alanlarının paket yapılandırma stili projelerinde çalışması için tüm paket yükleme kurallarını ele alma - #11036
Bu sürümde giderilen sorunlar
DCR'ler:
Diğer paket yöneticilerinin uyumlu olarak gösterilmesini sağlayan genişletilebilirliği kaldırmayı göz önünde bulundurun - #6623
NuGet'in VS genişletilebilirlik paketleri/derlemeleri için EmbedInteropType'ları kullanmayı durdurma - #10892
Project.nuget.g.targets, MSBuild 16 veya sonraki sürümlerde MSBuildAllProjects'e eklenmemelidir - #10895
Eski çekirdek API'leri kaldırma - #10940
NuGet.SolutionRestoreManager.Interop dosyasını NuGet.VisualStudio ile birleştirme - #10957
RuntimeEnvironmentHelper.IsDev14 kaldırma - #11000
Newtonsoft.Json'ı 13.0.1 - #11095 olarak güncelleştirin
[DCR]: packageNamespaces özelliğini packageSourceMapping olarak yeniden adlandır - #11205
Hata:
Paket kaydetme modu "nuspec" ile yükleme her zaman yeniden yüklenir - #2402
Update-Package -reinstall -ProjectName
<project>
PR için çalışmıyor - #6088"Aynı anahtara sahip bir öğe zaten eklendi" - proje grafının projectName == packageRef adı (aynı sürümde) olduğunda - #6795
[Test Hatası] "Lisans Kabulü" iletişim kutusunda ikinci yinelenen "Lisans Kabulü" dizesini kaldırmayı önerin - #8162
nuget.exe kullanılarak yapılandırma anahtarı kaldırılamıyor - #8223
msbuild /t:Restore ve Visual Studio, derleme adı != proje adı olduğunda farklı varlık dosyaları üretir - #8272
PM kullanıcı arabirimi, 999.500 <= sayı <=999.999 - #8800 olduğunda indirme sayısını insanlaştırmıyor
Roslyn Çözümleyicisi önerisi "paket yöneticisiyle yükleme" NuGet'i yanlış sekmeye açıyor - #10124
StaticGraph Geri Yükleme, bir proje Çözüm Dosyası aracılığıyla Çağrıldığında olmadığında
KnownToBeMSBuildFormat
açıkça belirtilmelidir - #10363"nuget spec" komutu iconUrl - #10400 ile bir .nuspec dosyası oluşturur
Rfc3161TimestampTokenInfo.GetNonce can throw - #10484
Mono'da komutun devre dışı bırakılmadığını doğrulama - #10585
CreateLockFileTargetLibrary yöntemi geri yükleme işlemini yavaşlatır - #10614
PackageArchieveReader CopyNupkgAsync'i geçersiz kılmadığından paket ayıklama başarısız oluyor - #10708
Paket ad alanı bilgilerini geri yükleme komutuna yayma - #10736
PMUI'de packages.config paketi yükleme/güncelleştirmelerinde ad alanları filtrelemesine uyuldığından emin olun - #10738
NuGet.Packaging.Extraction: Kaynaklardan özel durumlar bulunamadı - #10776
Simgeler için snupkg kullanılırken katıştırılmış PackageReadmeFile kullanılamaz - #10791
NuGet Projesi başlatmada yedekli UI gecikme anahtarlarını kaldırma - #10824
Geri yükleme kod yollarındaki gereksiz ToList numaralandırmalarını kaldırma - #10835
IVsPackageInstallerServices'i kullanım dışı olarak işaretleme - #10836
1 milyardan fazla kez indirilen NuGet paketleri yanlış üniteyi gösteriyor - #10864
Koyu temada "Güncelleştirmeler" ve "Birleştir" sekmelerinin sağındaki sayının arka plan rengini görmek zor - #10896
IVsProjectRestoreInfoSource geliştirmeleri - #10898
net5.0-windows hedefleyen Sdk Stili C# projesiyle packages.lock.json bozuk - #10901
IVsSolutionRestoreService4 için varsayılan uygulama ekleme - #10908
[Yanıt Verme Hızı] Gereksiz GetServiceAsync uzantıları aracılığıyla arka plan iş parçacığından örtük RPC'yi kaldırma - #10916
Bool kutulama işlemi, aşırı ayırmalara neden olan karma kodu hesaplamaktır - #10917
Kitaplık Bağımlılıkları üzerinde yineleme, Numaralandırıcıların aşırı ayrılmasına neden oluyor - #10918
Uyumluluk önbelleği araması her arama için Func ayırır - #10919
DependencyWalker.CreateGraphNode'da WhereListIterator'ın Fazla Yüklemeleri - #10920
Geri yükleme sırasında özel durum: "Geri yükleme meta verileri gerekli hedef çerçeveler listesini yanlış algılar" - #10924
Yönetilen kod kuralları arasında çerçeve azaltıcı paylaşma - #10925
NuGet VSIX yanlış bağlama yeniden yönlendirmeleriyle oluşturuldu - #10946
Init betikleri çalıştırılırken NuGet Paket Yöneticisi kullanıcı arabirimi gecikmeleri - #10947
Nuget geri yükleme/yükleme ve dotnet geri yükleme paketinde veya diğer eşdeğer komutlarda geçirilen sourceUri desteği - #10948
nuget.exe yükleme komutu için ad alanları filtreleme desteği - #10961
Her segment için ham özelliklerin oluşturulmasını durdurma - #10969
Hiç seçilmemiş geçişli başvurudan beklenmeyen NU1605 (budama alt yazısı) - #10972
NuGet.Localization'da paket simgesi yok - #10975
Proje kapanışı hesaplanırken sözlüğü gereksiz yere yeniden boyutlandırmaktan kaçının - #10976
I Ayarlar ile ilgili çakışan belgeler. AddOrUpdate - #10980
Dosyaları kopyalarken ve imzaları doğrularken havuza alınmış bayt dizisi kullanma - #10988
Bağımlılık yürütücüsunda Task.WhenAny ayırmalarından kaçının - #10989
Packages.config paketi yükleme/güncelleştirmeleri PMC'de ad alanları filtrelemesine uyuldığından emin olun - #11001
packages.config paketi yükleme/güncelleştirme IV yükleyici API'sinde ad alanları filtrelemesine uyuldığından emin olun - #11002
[Hata]: Seçili paket zaten yüklü olduğunda PM kullanıcı arabirimi 0 indirme sayısını gösteriyor - #11012
VersionFormatter'da ayırmaları azaltma - #11014
Kullanılmayan türler: LibraryDependencyType ve ilgili - #11015
[Hata]:
nuget.exe install packages.config
11018'e saygı-PackageSaveMode nuspec
- göstermiyor[Hata]:
$(IsPackable)
alıntı yapılmadı - #11025PMUI Paketi ad alanı filtrelemesi için çok kaynaklı depolarla Apex testleri oluşturma - #11026
[Hata]: [Erişilebilirlik] Açık veya Koyu Tema kullanarak PM kullanıcı arabirimi arama sonuçlarında okunan bağlantılar zor - #11055
IVsSolutionRestoreService4, IVsSolutionRestoreService3 - #11098'i genişletmelidir
[Hata]: Öneri bağlantıları PMUI'nin ayrıntılar bölmesinde hizalanmalıdır - #11101
Yüklü güvenlik açığı olan/kullanımdan kaldırılan paket sürümlerinin uyarı simgesinin araç ipucu net değil - #11103
[Yanıt Verme Hızı] RestoreOperationLogger+StatusBarProgress.Ui iş parçacığını bekleyen bir iş parçacığı havuzu iş parçacığını engelleyen atma - #11115
Son geri yükleme ölçümünden sonra zaman ekleme - #11124
[Hata]: 5.9.1 ile 5.10.0 arasındaki özyinelemeli
<files>
girişlerin işlenmesinde nuget.exe regresyon - #11125Projenin bekleyen bir adaylığı olduğunda Await WhenNominated - #11132
dotnet add paketinde geçirilen sourceUri desteği seçeneği - #11140
[Hata]: VS PM kullanıcı arabirimi paketler için JPEG simgelerini görüntülemiyor - #11144
UIDelay:
nuget.packagemanagement.visualstudio.dll!NuGet.PackageManagement.VisualStudio.VsCoreProjectSystemReferenceReader+<GetProjectReferencesAsync>d__
- CPS projeleri - #11162[Hata]:
dotnet list package --outdated --interactive
kimlik bilgisi sağlayıcısının listelenen her paket için önbelleği geçersiz kılmaktadır - #11169[Hata]: Packages.config senaryoları için paket ad alanları, bir paket için eşleşen ad alanı bulunamadığında geri dönüş seçeneği olarak tüm kaynakları kullanıyor - #11170
NuGet projelerini başlatma sırasında UI iş parçacığında MEF aramalarından kaçının - #11176
[Hata]: Yüklü sekmesindeki uyarı göstergesi görüntüsündeki araç ipucu artık çalışmıyor - #11183
MEF hizmetlerini alan tüm ServiceLocator çağrıları kullanıcı arabirimi iş parçacığından kaçınmalıdır. - #11201
[Hata]: Visual Studio'da telemetri olayı eksik - #11206
Yinelenen EnvDTEProjectUtility.IsSupportedAsync çağrılarından kaçının - #11207
IVsSolutionManager.GetSolutionDirectoryAsync ekleyin. Performansı geliştirin ve zaman uyumsuz kod yollarında çağıran iş parçacığını engellemeyi durdurun. - #11208
Ürün/test kodundaki türleri/değişkenleri paket ad alanları özelliğinin yeni adını yansıtacak şekilde yeniden adlandırın - #11216
[Hata]: ArPow derlemesi, ilişkisiz git deposunun alt dizinindeyken düzgün çalışmıyor - #11227
dotnet list package --vulnerable, --deprecated, --outdated not not work for transitive-only positives - #10767
Bu sürümde düzeltildi tüm sorunların listesi - 6.0
Bu sürümdeki işlemelerin listesi - 6.0.0
Özet: 6.0.1 Sürümündeki Yenilikler
NuGet'in bu sürümüyle yalnızca Visual Studio güncelleştirildi.
Bu sürümde giderilen sorunlar
- [Hata]: Visual Studio 17'de hizmet aracısından INuGetProjectService alınamıyor - #11367
- [Hata]: konsol başlatma Paket Yöneticisi kilitlenmelere neden olabilir - #11320
Bu sürümdeki işlemelerin listesi - 6.0.1
Topluluk katkıları
Bu NuGet sürümünü harika hale getirmenize yardımcı olan tüm katkıda bulunanlara teşekkür ederiz!
Kim | Prs | Sorunlar |
---|---|---|
omajid | 3866 | Rfc3161TimestampTokenInfo'da nonce değerini null olarak işleme - #10484 |
marcin-krystianc | 3934 | LockFileTargetLibrary için önbellek ekleme - #10614 |
krafs | 4151 | I Ayarlar üzerindeki belgelerden dönüş değeri kaldırıldı. AddOrUpdate - #10980 |
huangqinjin | 4148 | PackageSaveMode nuspec her zaman yeniden yüklemelerini düzelt - #2402 |
Insomniak47 | 4190 | düzeltme(belgeler): Katkıda bulunma yönergelerinde kapalı/çıkmaz uç bağlantısını kaldırma - #8987 |
marcin-krystianc | 4194 | Geri yükleme işlemi hataları için performans betikleri hesabı oluşturma - #9968 |
eriawan | 4159 | Tek tırnaklı Surround ($IsPackable) düzeltmeleri - #11025 |
huangqinjin | 4193 | Packages.config yükleme işlemi PackageSaveMode - #11018'e ulmalıdır |
mfkl | 4199 | test: yeni DependencyGraphSpec kullan - #11168 |
omajid | 4254 | Git apply ile --work-tree kullanma - #11227 |
Geri bildirim karşılaması
Görüşleriniz bizim için önemlidir. Bu sürümle ilgili herhangi bir sorun varsa, mevcut sorunlar için GitHub Sorunları ve Visual Studio Geliştirici Topluluğu gözden geçirin. NuGet'in içindeki yeni sorunlar için lütfen bir GitHub Sorunu bildirin. Genel NuGet deneyimi sorunları için, Sorun Bildirmeye Yardımcı Olun > altında sık kullandığınız IDE'de bulunan Sorun Bildir seçeneği aracılığıyla bize bildirin.