NuGet Uyarısı NU1605
Örnek 1
Paket düşürme algılandı: 'PackageB' 4.0.0'dan 3.5.0'a. Farklı bir sürüm seçmek için doğrudan projeden pakete başvurun.
'Project' -> 'PackageA' 4.0.0 -> 'PackageB' (>= 4.0.0)
'Project' -> 'PackageB' (>= 3.5.0)
Sorun
Bağımlılık paketi, bir paketin daha yüksek bir sürümünde geri yüklemenin çözümlenmesinden daha yüksek bir sürüm kısıtlaması belirtti. Bunun nedeni direct-dependency-wins kuralıdır. Paketleri çözümlerken, alt imzadaki doğrudan paket sürümü, uzak paketlerin aynı kimliğe sahip olan sürümünü geçersiz kılar.
Çözüm
Geri yükleme uyarısını gösteren projeye, paketin daha yüksek sürümüne bir paket başvurusu ekleyin.
Yukarıdaki örnekte, paket başvuruyu 4.0.0 olarak PackageB
değiştirirsiniz:
'PackageA' 4.0.0 -> 'PackageB' 4.0.0
'PackageB' 4.0.0
Örnek 2
Paket düşürme algılandı: 'PackageC' 2.0.0'dan 1.1.0'a. Farklı bir sürüm seçmek için doğrudan projeden pakete başvurun.
'Project' -> 'PackageA' 1.0.0 -> 'PackageB' 2.0.0 ->'PackageC' (>= 2.0.0)
'Project' -> 'PackageA' 1.0.0 -> 'PackageC' (>= 1.1.0)
Sorun
Bağımlılık paketi, bir paketin daha yüksek bir sürümünde geri yüklemenin çözümlenmesinden daha yüksek bir sürüm kısıtlaması belirtti. Bunun nedeni , doğrudan bağımlılık-wins kuralıdır- Paketleri çözümlerken NuGet, paket yazarının amacını yerine getirmeye çalışır.
yazarı PackageA
açıkça 2.0.0'dan PackageC
1.1.0'a PackageC
düşürmüştür.
Çözüm
Geri yükleme uyarısını gösteren projeye, paketin daha yüksek sürümüne bir paket başvurusu ekleyin.
Yukarıdaki örnekte, paket başvuruyu 2.0.0 olarak PackageC
değiştirebilirsiniz:
'PackageA' 4.0.0 -> 'PackageB' 4.0.0
'PackageB' 4.0.0
Örnek 3
Paket düşürme algılandı: System.IO.FileSystem.Primitives 4.3.0'dan 4.0.1'e. Farklı bir sürüm seçmek için doğrudan projeden pakete başvurun.
Project -> System.IO.FileSystem 4.0.1 -> runtime.win.System.IO.FileSystem 4.3.0 -> System.IO.FileSystem.Primitives (>= 4.3.0)
Project -> System.IO.FileSystem 4.0.1 -> System.IO.FileSystem.Primitives (>= 4.0.1)
Sorun
.NET Core 1.0 ve 1.1 ile birlikte gönderilen paketlerin belirli birleşimleri, .NET Core 3.0 veya üzeri bir projede birlikte başvurulduğunda ve RuntimeIdentifier belirtildiğinde birbiriyle uyumlu değildir. Sorunlu paketler genellikle veya Microsoft.
ile System.
başlar ve 4.0.0 ile 4.3.1 arasında sürüm numaralarına sahiptir. Bu durumda, eski sürüme düşürme iletisi bağımlılık zincirinde ile runtime.<RID>
başlayan bir pakete sahip olur.
Çözüm
Bu sorunu geçici olarak çözmek için aşağıdaki PackageReference öğesini ekleyin:
<PackageReference Include="Microsoft.NETCore.Targets" Version="3.0.0" PrivateAssets="all" />
SDK'nızın ana sürümüyle eşleşen sürümünü kullanmayı version
seçebilirsiniz.
Örnek 4
Paket düşürme algılandı: 2.1.8'den 2.1.0'a Microsoft.NETCore.App. Farklı bir sürüm seçmek için doğrudan projeden pakete başvurun.
test -> mvc -> Microsoft.NETCore.App (>= 2.1.8)
test -> Microsoft.NETCore.App (>= 2.1.0)
Sorun
mvc projesi, bir paketin daha yüksek bir sürümünde geri yüklemenin çözümlenmesinden daha yüksek bir sürüm kısıtlaması belirtti. Bunun nedeni doğrudan bağımlılık-wins kuralıdır. Paketleri çözümlerken, grafikteki doğrudan başvuruda bulunulmuş paketin sürümü uzak paketin aynı kimliğe sahip olan sürümünü geçersiz kılar.
Çözüm
Bu özel hata (Microsoft.NETCore.App paketiyle) .NET Core SDK'nızı 2.2.100 veya sonraki bir sürüme taşıyarak geliştirilmiştir. Microsoft.NETCore.App, 3.0.100 sürümünden önceki .NET Core SDK'sının otomatik olarak getirmeyi seçtiği otomatik başvurulu bir pakettir. Ayrıca bkz . Bağımsız dağıtım çalışma zamanı ileri sarma.
Not
NU1605, NuGet araçları tarafından bir uyarı olarak kabul edilir, ancak .NET SDK'sı bu uyarıyı aracılığıyla WarningsAsErrors
bir hata olarak kabul eder.
Projeniz olarak ayarlayarak TreatWarningsAsErrors
bu uyarıyı bir hataya true
yükseltiyor olabilir.
Önerilmiyor olsa da, çalışma zamanı sorunlarıyla karşılaşma olasılığınız daha yüksek olduğundan, bu uyarıyı gizlemeyi seçebilirsiniz.
İpucu
Alternatif çözüm: NuGetSolver, Microsoft DevLabs tarafından geliştirilen ve bağımlılık çakışmalarını çözmeye yardımcı olmak için tasarlanmış bir Visual Studio Uzantısıdır. Bu sorunları tanımlama ve çözme sürecini otomatikleştirir. Diğer ayrıntılar için Visual Studio Market'te NuGetSolver sayfasını ziyaret edin. Deneyiminiz hakkındaki geri bildirimlerinizi duymak isteriz.