.NET Framework'ten .NET'e bağlantı noktası koduna bağımlılıklarınızı analiz etme
Projenizde desteklenmeyen üçüncü taraf bağımlılıklarını belirlemek için önce bağımlılıklarınızı anlamanız gerekir. Dış bağımlılıklar, projenizde başvurduğunuz ancak kendiniz derlemediğiniz NuGet paketleri veya .dll
dosyalarıdır.
Kodunuzu .NET Standard 2.0 veya altına taşımanız hem .NET Framework hem de .NET ile kullanılabilmesini sağlar. Ancak kitaplığı .NET Framework ile kullanmanız gerekmiyorsa en son .NET sürümünü hedeflemeyi göz önünde bulundurun.
NuGet paketlerinizi PackageReference
.NET, NuGet başvuruları için packages.config dosyasını kullanamaz. Paket bağımlılıklarını belirtmek için hem .NET hem de .NET Framework PackageReference kullanabilir. Projenizde paketlerinizi belirtmek için packages.config kullanıyorsanız, bunu biçime dönüştürünPackageReference
.
Geçişi öğrenmek için packages.config'den PackageReference'a geçiş makalesine bakın.
NuGet paketlerinizi yükseltme
Projenizi biçime PackageReference
geçirdikten sonra paketlerinizin .NET ile uyumlu olup olmadığını doğrulayın.
İlk olarak paketlerinizi en son sürüme yükseltin. Bu, Visual Studio'daki NuGet Paket Yöneticisi kullanıcı arabirimiyle yapılabilir. Paket bağımlılıklarınızın daha yeni sürümleri .NET Core ile uyumlu olabilir.
Paket bağımlılıklarınızı analiz etme
Dönüştürülen ve yükseltilen paket bağımlılıklarınızın .NET Core üzerinde çalıştığını henüz doğrulamadıysanız, bunu başarmanın iki yolu vardır:
nuget.org kullanma
Her paketin desteklediği Hedef Çerçeve Takma Adlarını (TFM'ler) paket sayfasının Bağımlılıklar bölümünde nuget.org görebilirsiniz.
Siteyi kullanmak uyumluluğu doğrulamak için daha kolay bir yöntem olsa da, bağımlılık bilgileri tüm paketler için sitede kullanılamaz.
NuGet Paket Gezgini'ni kullanma
NuGet paketi, platforma özgü derlemeler içeren bir klasör kümesidir. Paketin içinde uyumlu bir derleme içeren bir klasör olup olmadığını denetleyin.
NuGet paket klasörlerini incelemenin en kolay yolu NuGet Paket Gezgini aracını kullanmaktır. Yükledikten sonra, klasör adlarını görmek için aşağıdaki adımları kullanın:
- NuGet Paket Gezgini'ni açın.
- Paketi çevrimiçi akıştan aç'a tıklayın.
- Paketin adını arayın.
- Arama sonuçlarından paket adını seçin ve aç'a tıklayın.
- Sağ taraftaki lib klasörünü genişletin ve klasör adlarına bakın.
Aşağıdaki desenlerden birini kullanarak adlara sahip bir klasör arayın: netstandardX.Y
, netX.Y
veya netcoreappX.Y
.
Bu değerler, .NET Standard, .NET ve .NET Core sürümleriyle eşlenen ve tümü .NET ile uyumlu olan Hedef Çerçeve Takma Adlarıdır (TFM).
Önemli
Bir paketin desteklediği TFM'lere bakarken, TFM'nin netstandard*
.NET 5, .NET Core veya .NET Framework gibi belirli bir .NET uygulamasını hedeflediğini unutmayın. .NET 5'den başlayarak, net*
TFM (işletim sistemi ataması olmadan) taşınabilir hedef olarak etkin bir şekilde yerini alırnetstandard*
. Örneğin, net5.0
.NET 5 API yüzeyini hedefler ve platformlar arası dostudur, ancak net5.0-windows
Windows işletim sisteminde uygulandığı gibi .NET 5 API yüzeyini hedefler.
.NET Framework uyumluluk modu
NuGet paketlerini analiz ettikten sonra yalnızca .NET Framework'ün hedeflendiğini fark edebilirsiniz.
.NET Standard 2.0'dan itibaren .NET Framework uyumluluk modu kullanıma sunulmuştur. Bu uyumluluk modu.NET Standard ve .NET Core projelerinin .NET Framework kitaplıklarına başvurmasına olanak tanır. Kitaplığın Windows Presentation Foundation (WPF) API'lerini kullanması gibi tüm projelerde .NET Framework kitaplıklarına başvurmak işe yaramaz, ancak birçok taşıma senaryosunun engelini kaldırır.
projenizde .NET Framework'i hedefleyen NuGet paketlerine başvurduğunuz zaman, Huitian.PowerCollections
aşağıdaki örneğe benzer bir paket geri dönüş uyarısı (NU1701) alırsınız:
NU1701: Package ‘Huitian.PowerCollections 1.0.0’ was restored using ‘.NETFramework,Version=v4.6.1’ instead of the project target framework ‘.NETStandard,Version=v2.0’. This package may not be fully compatible with your project.
Paketi eklediğinizde ve her derlemenizde bu paketi projenizle test ettiğinizden emin olmak için bu uyarı görüntülenir. Projeniz beklendiği gibi çalışıyorsa, Visual Studio'daki paket özelliklerini düzenleyerek veya proje dosyasını sık kullandığınız kod düzenleyicisinde el ile düzenleyerek bu uyarıyı gizleyebilirsiniz.
Proje dosyasını düzenleyerek uyarıyı engellemek için uyarısını PackageReference
engellemek istediğiniz paketin girdisini bulun ve özniteliğini NoWarn
ekleyin. NoWarn
özniteliği, tüm uyarı kimliklerinin virgülle ayrılmış listesini kabul eder. Aşağıdaki örnekte, proje dosyanızı el ile düzenleyerek paket için uyarının nasıl gizlendiği NU1701
Huitian.PowerCollections
gösterilmektedir:
<ItemGroup>
<PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
</ItemGroup>
Visual Studio'da derleyici uyarılarını gizleme hakkında daha fazla bilgi için bkz . NuGet paketleri için uyarıları gizleme.
NuGet paketleri .NET üzerinde çalışmazsa
Bağımlı olduğunuz bir NuGet paketi .NET Core'da çalışmıyorsa yapabileceğiniz birkaç şey vardır:
- Proje açık kaynak ve GitHub gibi bir yerde barındırılıyorsa geliştiricilerle doğrudan etkileşim kurabilirsiniz.
- Yazarla doğrudan nuget.org üzerinden iletişime geçebilirsiniz. Paketi arayın ve paketin sayfasının sol tarafındaki Sahiplere Başvurun'a tıklayın.
- Kullandığınız paketle aynı görevi yerine getiren .NET Core üzerinde çalışan başka bir paket arayabilirsiniz.
- Paketin yaptığı kodu kendiniz yazmaya çalışabilirsiniz.
- En azından paketin uyumlu bir sürümü kullanıma sunulana kadar uygulamanızın işlevselliğini değiştirerek paket bağımlılığını ortadan kaldırabilirsiniz.
Açık kaynak proje bakımcıları ve NuGet paketi yayımcılarının genellikle gönüllü olduğunu unutmayın. Belirli bir etki alanını önemsedikleri, ücretsiz yaptıkları ve genellikle farklı bir gündüz işlerine sahip oldukları için katkıda bulunurlar. .NET Core desteği istemek için onlarla iletişim kurarken buna dikkat edin.
Bu seçeneklerden herhangi biriyle ilgili sorununuzu çözemiyorsanız daha sonraki bir tarihte .NET Core'a taşımanız gerekebilir.
.NET Ekibi, .NET Core ile hangi kitaplıkların desteklendiği konusunda en önemli olanın hangisi olduğunu bilmek istiyor. Kullanmak istediğiniz kitaplıklar hakkında e-posta dotnet@microsoft.com gönderebilirsiniz.
NuGet olmayan bağımlılıkları analiz etme
Dosya sistemindeki DLL gibi NuGet paketi olmayan bir bağımlılığınız olabilir. .NET Yükseltme Yardımcısı aracıyla bu bağımlılığın taşınabilirliğini belirleyebilirsiniz.