Baca dalam bahasa Inggris

Bagikan melalui


Menganalisis dependensi Anda ke kode port dari .NET Framework ke .NET

Untuk mengidentifikasi dependensi pihak ketiga yang tidak didukung dalam proyek Anda, Anda harus terlebih dahulu memahami dependensi Anda. Dependensi eksternal adalah paket atau .dll file NuGet yang Anda referensikan dalam proyek Anda, tetapi anda tidak membuat sendiri.

Porting kode Anda ke .NET Standard 2.0 atau di bawah ini memastikan bahwa kode tersebut dapat digunakan dengan .NET Framework dan .NET. Namun, jika Anda tidak perlu menggunakan pustaka dengan .NET Framework, pertimbangkan untuk menargetkan versi terbaru .NET.

Migrasikan paket NuGet Anda ke PackageReference

.NET tidak dapat menggunakan file packages.config untuk referensi NuGet. Baik .NET dan .NET Framework dapat menggunakan PackageReference untuk menentukan dependensi paket. Jika Anda menggunakan packages.config untuk menentukan paket Anda dalam proyek Anda, konversikan ke PackageReference format .

Untuk mempelajari cara bermigrasi, lihat artikel Migrasi dari packages.config ke PackageReference .

Meningkatkan paket NuGet Anda

Setelah Anda memigrasikan proyek ke PackageReference format, verifikasi apakah paket Anda kompatibel dengan .NET.

Pertama, tingkatkan paket Anda ke versi terbaru yang Anda bisa. Ini dapat dilakukan dengan UI Manajer Paket NuGet di Visual Studio. Kemungkinan versi dependensi paket Anda yang lebih baru sudah kompatibel dengan .NET Core.

Menganalisis dependensi paket Anda

Jika Anda belum memverifikasi bahwa dependensi paket yang dikonversi dan ditingkatkan berfungsi pada .NET Core, ada dua cara untuk mencapainya:

Gunakan nuget.org

Anda dapat melihat Monikers Kerangka Kerja Target (TFM) yang didukung setiap paket pada nuget.org di bawah bagian Dependensi dari halaman paket.

Meskipun menggunakan situs adalah metode yang lebih mudah untuk memverifikasi kompatibilitas, informasi Dependensi tidak tersedia di situs untuk semua paket.

Menggunakan NuGet Package Explorer

Paket NuGet adalah sekumpulan folder yang berisi rakitan khusus platform. Periksa apakah ada folder yang berisi rakitan yang kompatibel di dalam paket.

Cara term mudah untuk memeriksa folder paket NuGet adalah dengan menggunakan alat NuGet Package Explorer . Setelah menginstalnya, gunakan langkah-langkah berikut untuk melihat nama folder:

  1. Buka Penjelajah Paket NuGet.
  2. Klik Buka paket dari umpan online.
  3. Cari nama paket.
  4. Pilih nama paket dari hasil pencarian dan klik buka.
  5. Perluas folder lib di sisi kanan dan lihat nama folder.

Cari folder dengan nama menggunakan salah satu pola berikut: netstandardX.Y, , netX.Yatau netcoreappX.Y.

Nilai-nilai ini adalah Monikers Kerangka Kerja Target (TFM) yang memetakan ke versi .NET Standard, .NET, dan .NET Core, yang semuanya kompatibel dengan .NET.

Penting

Saat melihat TFM yang didukung paket, perhatikan bahwa TFM selain netstandard* menargetkan implementasi tertentu dari .NET, seperti .NET 5, .NET Core, atau .NET Framework. Dimulai dengan .NET 5, net* TFM (tanpa penugasan sistem operasi) secara efektif menggantikan netstandard* sebagai target portabel. Misalnya, net5.0 menargetkan permukaan .NET 5 API dan ramah lintas platform, tetapi net5.0-windows menargetkan permukaan API .NET 5 seperti yang diimplementasikan pada sistem operasi Windows.

mode kompatibilitas .NET Framework

Setelah menganalisis paket NuGet, Anda mungkin menemukan bahwa paket tersebut hanya menargetkan .NET Framework.

Dimulai dengan .NET Standard 2.0, mode kompatibilitas .NET Framework diperkenalkan. Mode kompatibilitas ini memungkinkan proyek .NET Standard dan .NET Core untuk mereferensikan pustaka .NET Framework. Mereferensikan pustaka .NET Framework tidak berfungsi untuk semua proyek, seperti jika pustaka menggunakan API Windows Presentation Foundation (WPF), tetapi membuka blokir banyak skenario porting.

Saat Anda mereferensikan paket NuGet yang menargetkan .NET Framework dalam proyek Anda, seperti Huitian.PowerCollections, Anda mendapatkan peringatan fallback paket (NU1701) yang mirip dengan contoh berikut:

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.

Peringatan tersebut ditampilkan saat Anda menambahkan paket dan setiap kali Anda membangun untuk memastikan Anda menguji paket tersebut dengan proyek Anda. Jika proyek Anda berfungsi seperti yang diharapkan, Anda dapat menekan peringatan tersebut dengan mengedit properti paket di Visual Studio atau dengan mengedit file proyek secara manual di editor kode favorit Anda.

Untuk menekan peringatan dengan mengedit file proyek, temukan PackageReference entri untuk paket yang ingin Anda tekan peringatannya dan tambahkan NoWarn atribut . Atribut NoWarn menerima daftar yang dipisahkan koma dari semua ID peringatan. Contoh berikut menunjukkan cara menekan NU1701 peringatan untuk Huitian.PowerCollections paket dengan mengedit file proyek Anda secara manual:

XML
<ItemGroup>
  <PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
</ItemGroup>

Untuk informasi selengkapnya tentang cara menekan peringatan kompilator di Visual Studio, lihat Menekan peringatan untuk paket NuGet.

Jika paket NuGet tidak akan berjalan pada .NET

Ada beberapa hal yang dapat Anda lakukan jika paket NuGet yang Anda andalkan tidak berjalan di .NET Core:

  • Jika proyek sumber terbuka dan dihosting di suatu tempat seperti GitHub, Anda dapat melibatkan pengembang secara langsung.
  • Anda dapat menghubungi penulis langsung di nuget.org. Cari paket dan klik Hubungi Pemilik di sisi kiri halaman paket.
  • Anda dapat mencari paket lain yang berjalan pada .NET Core yang menyelesaikan tugas yang sama dengan paket yang Anda gunakan.
  • Anda dapat mencoba menulis kode yang dilakukan paket sendiri.
  • Anda dapat menghilangkan dependensi pada paket dengan mengubah fungsionalitas aplikasi Anda, setidaknya sampai versi paket yang kompatibel tersedia.

Ingatlah bahwa pengelola proyek sumber terbuka dan penerbit paket NuGet sering menjadi sukarelawan. Mereka berkontribusi karena mereka peduli dengan domain tertentu, melakukannya secara gratis, dan sering memiliki pekerjaan siang hari yang berbeda. Perhatikan bahwa ketika menghubungi mereka untuk meminta dukungan .NET Core.

Jika Anda tidak dapat mengatasi masalah Anda dengan salah satu opsi ini, Anda mungkin harus melakukan port ke .NET Core di kemudian hari.

Tim .NET ingin mengetahui pustaka mana yang paling penting untuk didukung dengan .NET Core. Anda dapat mengirim email ke dotnet@microsoft.com tentang pustaka yang ingin Anda gunakan.

Menganalisis dependensi non-NuGet

Anda mungkin memiliki dependensi yang bukan paket NuGet, seperti DLL dalam sistem file. Anda dapat menentukan portabilitas dependensi tersebut dengan alat Asisten Peningkatan .NET.

Langkah berikutnya