.NET Framework 'ten .net 'e bağlantı noktası kodu için bağımlılıklarınızı çözümleyin
Projenizde desteklenmeyen üçüncü taraf bağımlılıklarını belirlemek için öncelikle bağımlılıklarınızı anlamanız gerekir. dış bağımlılıklar, .dll projenizde başvurduğunuz, ancak sizin oluşturmayan NuGet paketlerdir veya dosyalardır.
kodunuzun .NET Standard 2,0 veya altına eklenmesi, hem .NET Framework hem de .net ile kullanılmasını sağlar. ancak, kitaplığı .NET Framework ile kullanmanız gerekmiyorsa, .net 'in en son sürümünü belirlemeyi göz önünde bulundurun.
NuGet paketlerinizi geçirinPackageReference
.net NuGet başvuruları için packages.config dosyasını kullanamıyor. hem .net hem de .NET Framework, paket bağımlılıklarını belirtmek için packagereference kullanabilir. Kuruluşunuzda paketlerinizi belirtmek için packages.config kullanıyorsanız, bunu PackageReference biçimine dönüştürün.
Nasıl geçiş yapılacağını öğrenmek için packages.config ' den PackageReference 'A geçiş makalesine bakın.
NuGet paketlerinizi yükseltin
Projenizi biçimine geçirdikten sonra PackageReference , paketlerinizin .NET ile uyumlu olduğunu doğrulayın.
İlk olarak, paketlerinizi kullanabileceğiniz en son sürüme yükseltin. bu, Visual Studio NuGet Paket Yöneticisi kullanıcı arabirimi ile yapılabilir. Paket bağımlılıklarınızın daha yeni sürümleri zaten .NET Core ile uyumlu olabilir.
Paket bağımlılıklarınızı çözümleyin
Dönüştürülen ve yükseltilen paket bağımlılıklarınızın .NET Core 'da çalıştığını henüz doğrulamadıysanız, bunu elde etmeniz için birkaç yol vardır:
nuget.org kullanarak NuGet paketlerini analiz etme
Her bir paketin NuGet.org üzerinde desteklediği hedef çerçeve takma adlarını (tfms), paket sayfasının Bağımlılıklar bölümünde görebilirsiniz.
Siteyi kullanmak uyumluluğu doğrulamak için daha kolay bir yöntem olsa da, tüm paketler için sitede Bağımlılıklar bilgisi yok.
NuGet paket gezginini kullanarak NuGet paketlerini analiz etme
NuGet paket, platforma özgü derlemeler içeren bir klasörler kümesidir. Paketin içinde uyumlu bir bütünleştirilmiş kod içeren bir klasör olup olmadığını denetleyin.
NuGet paket klasörlerini incelemeyi 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 gezginini açın.
- Çevrimiçi akıştan paketi 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 desenleri kullanarak adlara sahip bir klasör arayın: netstandardX.Y , netX.Y veya netcoreappX.Y .
Bu değerler, .NET ile uyumlu olan .NET Standard, .NET ve .NET Core sürümleriyle eşleyen hedef çerçeve takma adları (tfms) .
Önemli
Bir paketin desteklediği TFMs 'e baktığınızda, .net netstandard* 5, .NET Core veya .NET Framework gibi belirli bir .NET uygulamasını hedeflemeden başka BIR TFM 'nin olduğunu unutmayın. .NET 5 ' den itibaren net* TFI (bir işletim sistemi ataması olmadan) etkin bir şekilde netstandard* Taşınabilir hedefolarak değiştirilir. örneğin, net5.0 .net 5 apı yüzeyini hedefler ve platformlar arası kullanımı kolay, ancak net5.0-windows Windows işletim sisteminde uygulanan .net 5 apı yüzeyini hedefler.
uyumluluk modu .NET Framework
NuGet paketlerini analiz ettikten sonra, yalnızca .NET Framework hedeflebileceğinizi fark edebilirsiniz.
.NET Standard 2,0 ' den başlayarak .NET Framework uyumluluk modu sunuldu. bu uyumluluk modu, .NET Standard ve .net Core projelerinin .NET Framework kitaplıklarına başvurmasına olanak tanır. .NET Framework kütüphaneleri, kitaplığın Windows Presentation Foundation (WPF) apı 'leri kullanması gibi tüm projeler için çalışmaz, ancak birçok taşıma senaryosunun engellemesini kaldırabilir.
projenizde .NET Framework hedef olan NuGet paketlerine başvurduğunuzda, örneğin 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.
Bu uyarı, paketi eklediğinizde ve bu paketi projenizle test ettiğinizden emin olmak için her oluşturduğunuzda görüntülenir. projeniz beklendiği gibi çalışıyorsa, Visual Studio paket özelliklerini düzenleyerek veya en sevdiğiniz kod düzenleyicinizdeki proje dosyasını el ile düzenleyerek bu uyarıyı bastırın.
Proje dosyasını düzenleyerek uyarıyı bastırmak için, PackageReference uyarıyı bastırmak istediğiniz paketin girdisini bulun ve NoWarn özniteliği ekleyin. NoWarnÖznitelik, tüm uyarı kimliklerinin virgülle ayrılmış bir listesini kabul eder. Aşağıdaki örnek, NU1701 Huitian.PowerCollections proje dosyanızı el ile düzenleyerek paket için uyarının nasıl bastıralınacağını gösterir:
<ItemGroup>
<PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
</ItemGroup>
Visual Studio derleyici uyarılarını gösterme hakkında daha fazla bilgi için bkz. NuGet paketleri için uyarıları gizleme.
NuGet paketleri .net üzerinde çalıştırılmayacaksa
bağlı olduğunuz bir NuGet paketi .net Core üzerinde çalışmazsa yapabileceğiniz birkaç şey vardır:
- proje açık kaynaktır ve GitHub gibi bir yerde barındırılıyorsa, geliştiricilerle doğrudan etkileşim sağlayabilirsiniz.
- Yazarla doğrudan NuGet.orgüzerinde iletişim kurabilmeniz gerekir. Paketi arayın ve paketin sayfasının sol tarafındaki kişi sahipleri ' na tıklayın.
- Kullandığınız paketle aynı görevi gerçekleştiren .NET Core üzerinde çalışan başka bir paket arayabilirsiniz.
- Paketin kendi yaptığına yaptığı kodu yazmayı deneyebilirsiniz.
- En azından paketin uyumlu bir sürümü kullanılabilir hale gelene kadar, uygulamanızın işlevselliğini değiştirerek paketteki bağımlılığı ortadan kaldırabilirsiniz.
açık kaynaklı proje bakım ve NuGet paket yayımcılarının genellikle gönüllü teers olduğunu unutmayın. Bunlar, belirli bir etki alanı hakkında ilgilendiğinden, ücretsiz olarak yaptığı ve genellikle farklı bir Daytime işi olan için katkıda bulunur. .NET Core desteği istemek için onlarla iletişim kurarken bu kişiden emin olun.
Sorununuzu bu seçeneklerden herhangi biriyle gideremezseniz, daha sonraki bir tarihte .NET Core 'a bağlantı noktası oluşturmanız gerekebilir.
.NET ekibi, .NET Core ile desteklemek için hangi kitaplıkların en önemli olduğunu bilmesini istiyor. Kullanmak istediğiniz kitaplıklar hakkında bir e-posta gönderebilirsiniz dotnet@microsoft.com .
NuGet olmayan bağımlılıkları çözümle
dosya sistemindeki DLL gibi NuGet bir paket olmayan bir bağımlılığa sahip olabilirsiniz. Bu bağımlılığın taşınabilirliği belirlemenin tek yolu .net taşınabilirlik Çözümleyicisi aracını çalıştırmak içindir. araç, .NET Framework hedef olan derlemeleri analiz eder ve .net Core gibi diğer .net platformlarına taşınabilir olan apı 'leri tanımlar. aracı bir konsol uygulaması veya Visual Studio uzantısıolarak çalıştırabilirsiniz.