Bagikan melalui


.NET Portability Analyzer

Penting

Port API tidak digunakan lagi untuk analisis biner dengan alat .NET Upgrade Assistant . Layanan backend Port API telah dimatikan, jadi untuk menggunakan alat ini, Anda harus menggunakannya secara offline. Untuk informasi selengkapnya, lihat .NET API Port README.

Ingin membuat pustaka Anda mendukung multi-platform? Ingin melihat berapa banyak pekerjaan yang diperlukan untuk membuat aplikasi .NET Framework Anda berjalan di .NET Core? .NET Portability Analyzer adalah alat yang menganalisis rakitan dan memberikan laporan terperinci tentang .NET API yang hilang agar aplikasi atau pustaka dapat portabel pada platform .NET target yang Anda tentukan. Portability Analyzer adalah aplikasi konsol yang menganalisis rakitan berdasarkan file atau direktori tertentu.

Setelah mengonversi proyek untuk menargetkan platform baru, seperti .NET Core, Anda dapat menggunakan penganalisis kompatibilitas Platform berbasis Roslyn untuk mengidentifikasi API yang melempar pengecualian PlatformNotSupportedException dan masalah kompatibilitas lainnya.

Target umum

  • .NET: Memiliki desain modular, mendukung penginstalan berdampingan, dan menargetkan skenario lintas platform. Penginstalan berdampingan memungkinkan Anda mengadopsi versi .NET baru tanpa merusak aplikasi lain. Jika tujuan Anda adalah untuk memindahkan aplikasi Anda ke .NET dan mendukung beberapa platform, ini adalah target yang direkomendasikan.
  • .NET Standard: Menyertakan API Standar .NET yang tersedia di semua implementasi .NET.
  • ASP.NET Core: Kerangka kerja web modern yang dibangun di .NET. Jika tujuan Anda adalah untuk memindahkan aplikasi web Anda ke .NET (Core) untuk mendukung beberapa platform, ini adalah target yang direkomendasikan.
  • .NET + Ekstensi Platform: Menyertakan API .NET selain Paket Kompatibilitas Windows, yang menyediakan banyak teknologi .NET Framework khusus Windows.
  • Ekstensi Platform .NET Standard + : Menyertakan API Standar .NET selain Paket Kompatibilitas Windows, yang menyediakan banyak teknologi .NET Framework khusus Windows.

Konfigurasikan .NET Portability Analyzer

Untuk mulai menggunakan .NET Portability Analyzer di Visual Studio, Anda harus terlebih dahulu mengkloning dan membangun proyek dotnet-apiport. Ini berfungsi pada versi Visual Studio 2017 dan Visual Studio 2019.

Penting

.NET Portability Analyzer tidak didukung pada Visual Studio 2022.

Pandangan Menyeluruh Solusi

Langkah yang berguna dalam menganalisis solusi dengan banyak proyek adalah memvisualisasikan dependensi untuk memahami subset rakitan mana yang bergantung pada apa. Rekomendasi umumnya adalah menerapkan hasil analisis dalam pendekatan bottom-up yang dimulai dengan node daun dalam grafik dependensi.

Untuk mengambil ini, jalankan perintah berikut:

ApiPort.exe analyze -r DGML -f [directory or file]

Hasilnya akan terlihat seperti berikut ini saat dibuka di Visual Studio:

Cuplikan layar analisis DGML.

Menganalisis portabilitas

Masukkan perintah berikut untuk menganalisis direktori saat ini:

ApiPort.exe analyze -f .

Untuk menganalisis daftar file .dll tertentu, masukkan perintah berikut:

ApiPort.exe analyze -f first.dll -f second.dll -f third.dll

Untuk menargetkan versi tertentu, gunakan parameter -t:

ApiPort.exe analyze -t ".NET, Version=5.0" -f .

Jalankan ApiPort.exe -? untuk mendapatkan bantuan lainnya.

Disarankan agar Anda menyertakan semua file .exe dan .dll terkait yang Anda miliki dan ingin Anda port, dan mengecualikan file yang bergantung pada aplikasi Anda tetapi Anda tidak memiliki dan tidak dapat melakukan port. Ini akan memberi Anda laporan portabilitas yang paling relevan.

Menampilkan dan menginterpretasikan hasil portabilitas

Hanya API yang tidak didukung oleh Platform Target yang muncul dalam laporan. Laporan Portabilitas .NET Anda disimpan sebagai file dalam format yang Anda tentukan. Defaultnya ada dalam file Excel (.xlsx) di direktori Anda saat ini.

Ringkasan Portabilitas

Cuplikan layar Ringkasan Portabilitas.

Bagian Ringkasan Portabilitas dari laporan menunjukkan persentase portabilitas untuk setiap perakitan yang disertakan dalam eksekusi. Dalam contoh sebelumnya, 71,24% api .NET Framework yang digunakan dalam aplikasi svcutil tersedia di Ekstensi .NET Core + Platform. Jika Anda menjalankan alat .NET Portability Analyzer terhadap beberapa rakitan, setiap rakitan harus memiliki baris dalam laporan Ringkasan Portabilitas.

Detail

Cuplikan layar Detail Portabilitas.

Bagian Detail laporan mencantumkan API yang hilang dari salah satu Platform Yang Ditargetkan yang dipilih.

  • Jenis target: memiliki API yang hilang dari Platform Target.
  • Anggota target: metode hilang dari Platform Target.
  • Nama assembly: assembly .NET Framework tempat API yang hilang berada.
  • Masing-masing Platform Target yang dipilih adalah satu kolom, seperti nilai ".NET Core": "Tidak didukung" berarti API tidak didukung pada Platform Target ini.
  • Perubahan yang Direkomendasikan: API atau teknologi yang direkomendasikan untuk diubah. Saat ini, bidang ini kosong atau kedaluarsa untuk banyak API. Karena sejumlah besar API, ini adalah tantangan yang signifikan untuk menjaganya tetap terbarui.

Rakitan hilang

Cuplikan layar rakitan yang hilang.

Anda mungkin menemukan bagian Missing Assemblies dalam laporan Anda. Bagian ini berisi daftar rakitan yang dirujuk oleh assembly Anda yang dianalisis dan tidak dianalisis. Jika itu adalah assembly yang Anda miliki, sertakan dalam eksekusi penganalisis portabilitas API sehingga Anda bisa mendapatkan laporan portabilitas tingkat API terperinci untuk itu. Jika ini adalah pustaka pihak ketiga, periksa apakah ada versi yang lebih baru yang mendukung platform target Anda, dan pertimbangkan untuk pindah ke versi yang lebih baru. Akhirnya, daftar harus menyertakan semua rakitan pihak ketiga yang bergantung pada aplikasi Anda yang memiliki versi yang mendukung platform target Anda.

Lihat juga

Untuk informasi selengkapnya tentang .NET Portability Analyzer, kunjungi dokumentasi GitHub.