Aracılığıyla paylaş


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

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

Visual Studio Package Vulnerabilities

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

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ı - #11025

  • PMUI 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 - #11125

  • Projenin 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.