Aracılığıyla paylaş


.NET Taşınabilirlik Çözümleyicisi

Önemli

API Bağlantı Noktası, .NET Yükseltme Yardımcısı aracıyla ikili analiz için kullanım dışı bırakıldı. API Bağlantı Noktası'nın arka uç hizmeti kapatıldı, bu nedenle aracı kullanmak için çevrimdışı kullanmanız gerekir. Daha fazla bilgi için bkz . .NET API Bağlantı Noktası BENIOKU.

Kitaplıklarınızın çok platformlu desteği olmasını mı istiyorsunuz? .NET Framework uygulamanızın .NET Core'da çalıştırılması için ne kadar çalışma gerektiğini görmek ister misiniz? .NET Taşınabilirlik Çözümleyicisi, derlemeleri analiz eden ve uygulamalar veya kitaplıkların belirtilen hedeflenen .NET platformlarınızda taşınabilir olması için eksik olan .NET API'leri hakkında ayrıntılı bir rapor sağlayan bir araçtır. Taşınabilirlik Çözümleyicisi, derlemeleri belirtilen dosyalara veya dizine göre analiz eden bir konsol uygulaması.

Projenizi .NET Core gibi yeni platformu hedeflemek üzere dönüştürdükten sonra, özel durumlar ve diğer uyumluluk sorunları oluşturan API'leri tanımlamak için Roslyn tabanlı PlatformNotSupportedException kullanabilirsiniz.

Ortak hedefler

  • .NET : Modüler bir tasarıma sahiptir, yan yana yüklemeyi destekler ve platformlar arası senaryoları hedefler. Yan yana yükleme, diğer uygulamaları bozmadan yeni .NET sürümlerini benimsemenizi sağlar. Amacınız uygulamanızı .NET'e taşımayı ve birden çok platformu desteklemekse, önerilen hedef budur.
  • .NET Standard: Tüm .NET uygulamalarında kullanılabilen .NET Standart API'lerini içerir.
  • ASP.NET Core: .NET üzerinde oluşturulmuş modern bir web çerçevesi. Amacınız web uygulamanızı birden çok platformu desteklemek üzere .NET'e (Core) taşımayı amaçlıyorsanız, önerilen hedef budur.
  • .NET + Platform Uzantıları: Windows'a özgü .NET Framework teknolojilerinin birçoğunu sağlayan Windows Uyumluluk Paketi'ne ek olarak .NET API'lerini de içerir.
  • .NET Standard + Platform Uzantıları: Windows'a özgü .NET Framework teknolojilerinin birçoğunu sağlayan Windows Uyumluluk Paketi'ne ek olarak .NET Standart API'lerini de içerir.

.NET Taşınabilirlik Çözümleyicisi'ni kullanma

Visual Studio'da .NET Taşınabilirlik Çözümleyicisi'ni kullanmaya başlamak için önce kopyalayıp dotnet-apiport projesinioluşturmanız gerekir. Visual Studio 2017 ve Visual Studio 2019 sürümlerinde çalışır.

Önemli

.NET Taşınabilirlik Çözümleyicisi Visual Studio 2022'de desteklenmez.

Çözüm genelinde görünüm

Birçok proje içeren bir çözümü analiz etmede yararlı bir adım, hangi derleme alt kümesinin neye bağlı olduğunu anlamak için bağımlılıkları görselleştirmektir. Genel öneri, bir bağımlılık grafiğindeki yaprak düğümlerden başlayarak aşağıdan yukarıya doğru bir yaklaşımda analizin sonuçlarının uygulanmasıdır.

Bunu almak için aşağıdaki komutu çalıştırın:

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

Bunun bir sonucu Visual Studio'da açıldığında aşağıdaki gibi görünür:

DGML analizinin ekran görüntüsü.

Taşınabilirliği analiz etme

Geçerli dizini analiz etmek için aşağıdaki komutu girin:

ApiPort.exe analyze -f .

Belirli bir .dll dosya listesini analiz etmek için aşağıdaki komutu girin:

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

Belirli bir sürümü hedeflemek için parametresini -t kullanın:

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

Daha fazla yardım almak için komutunu çalıştırın ApiPort.exe -? .

Sahip olduğunuz ve taşımasını istediğiniz tüm ilgili .exe ve .dll dosyalarını ve uygulamanızın bağımlı olduğu ancak sizin sahip olmadığınız ve bağlantı noktası alamadığınız dosyaları dışlamanız önerilir. Bu size en uygun taşınabilirlik raporunu verir.

Taşınabilirlik sonucunu görüntüleme ve yorumlama

Raporda yalnızca Hedef Platform tarafından desteklenmeyen API'ler görüntülenir. .NET Taşınabilirlik raporunuz, belirttiğiniz biçimde bir dosya olarak kaydedilir. Varsayılan değer, geçerli dizininizdeki bir Excel dosyasındadır (.xlsx).

Taşınabilirlik Özeti

Taşınabilirlik Özeti'nin ekran görüntüsü.

Raporun Taşınabilirlik Özeti bölümü, çalıştırmaya dahil edilen her derleme için taşınabilirlik yüzdesini gösterir. Önceki örnekte, uygulamada kullanılan .NET Framework API'lerinin %71,24'ünün svcutil .NET Core + Platform Uzantıları'nda kullanılabilir. .NET Taşınabilirlik Çözümleyicisi aracını birden çok derlemede çalıştırırsanız, her derlemenin Taşınabilirlik Özeti raporunda bir satırı olmalıdır.

Ayrıntılar

Taşınabilirlik Ayrıntıları'nın ekran görüntüsü.

Raporun Ayrıntılar bölümünde, seçilen Hedeflenen Platformlardan herhangi birinde eksik OLAN API'ler listelenir.

  • Hedef tür: Hedef Platformda API eksikliği var.
  • Hedef üye: Hedef Platformda bir yöntem eksik.
  • Derleme adı: Eksik API'nin içinde yaşadığı .NET Framework derlemesi.
  • Seçilen Hedef Platformların her biri ".NET Core" gibi bir sütundur: "Desteklenmiyor" değeri, API'nin bu Hedef Platformda desteklenmediği anlamına gelir.
  • Önerilen Değişiklikler: değiştirilmesi önerilen API veya teknoloji. Şu anda bu alan birçok API için boş veya güncel değil. Çok sayıda API nedeniyle, güncel tutmak önemli bir zorluk.

Eksik derlemeler

Eksik derlemelerin ekran görüntüsü.

Raporunuzda Eksik Derlemeler bölümü bulmanız mümkün olabilir. Bu bölüm, çözümlenen derlemeleriniz tarafından başvuruda bulunan ve çözümlenmemiş derlemelerin listesini içerir. Sahip olduğunuz bir derlemeyse, ayrıntılı, API düzeyinde taşınabilirlik raporu alabilmeniz için api taşınabilirlik çözümleyicisi çalıştırması bölümüne ekleyin. Bu bir üçüncü taraf kitaplığıysa, hedef platformunuzu destekleyen daha yeni bir sürüm olup olmadığını denetleyin ve daha yeni bir sürüme geçmeyi göz önünde bulundurun. Sonunda liste, uygulamanızın bağlı olduğu ve hedef platformunuzu destekleyen bir sürüme sahip olan tüm üçüncü taraf derlemelerini içermelidir.

Ayrıca bkz.

.NET Taşınabilirlik Çözümleyicisi hakkında daha fazla bilgi için GitHub belgelerini ziyaret edin.