Analyzátor přenositelnosti .NET
Důležité
Port rozhraní API je zastaralý ve prospěch binární analýzy pomocí nástroje Pomocník pro upgrade platformy .NET. Back-endová služba portu rozhraní API byla vypnuta, takže pokud chcete nástroj používat, musíte ho používat offline. Další informace najdete v tématu README portu rozhraní .NET API.
Chcete, aby vaše knihovny podporovaly více platforem? Chcete zjistit, kolik práce je potřeba k tomu, aby vaše aplikace .NET Framework běžela v .NET Core? Analyzátor přenositelnosti .NET je nástroj, který analyzuje sestavení a poskytuje podrobnou sestavu o rozhraních .NET API, která chybí pro aplikace nebo knihovny, které se mají přenášet na určených cílových platformách .NET. Analyzátor přenositelnosti je konzolová aplikace , která analyzuje sestavení zadanými soubory nebo adresářem.
Po převodu projektu na cíl na novou platformu, jako je .NET Core, můžete pomocí analyzátoru kompatibility platformy založeného na Roslyn identifikovat rozhraní API, která můžou PlatformNotSupportedException vyvolat výjimky a další problémy s kompatibilitou.
Běžné cíle
- .NET: Má modulární návrh, podporuje souběžnou instalaci a cílí na scénáře pro různé platformy. Souběžná instalace umožňuje používat nové verze .NET bez přerušení ostatních aplikací. Pokud vaším cílem je přenést aplikaci do .NET a podporovat více platforem, jedná se o doporučený cíl.
- .NET Standard: Zahrnuje rozhraní .NET Standard API dostupná ve všech implementacích .NET.
- ASP.NET Core: Moderní webová architektura založená na .NET. Pokud vaším cílem je přenést webovou aplikaci do .NET (Core) pro podporu více platforem, jedná se o doporučený cíl.
- Rozšíření platformy .NET + : Zahrnuje rozhraní .NET API kromě sady Windows Compatibility Pack, která poskytuje mnoho technologií rozhraní .NET Framework specifických pro Windows.
- .NET Standard + Rozšíření platformy : Zahrnuje .NET Standard API navíc k balíčku Windows Compatibility Pack, který poskytuje mnoho technologií .NET Framework specifických pro Windows.
Jak používat analyzátor přenositelnosti .NET
Pokud chcete začít používat analyzátor přenositelnosti .NET v sadě Visual Studio, musíte nejprve klonovat a sestavit projekt dotnet-apiport. Funguje ve verzích sady Visual Studio 2017 a Visual Studio 2019.
Důležité
Analyzátor přenositelnosti .NET není v sadě Visual Studio 2022 podporován.
Zobrazení na úrovni řešení
Užitečným krokem při analýze řešení s mnoha projekty je vizualizovat závislosti, abyste pochopili, která podmnožina sestavení závisí na tom, co. Obecné doporučení je použít výsledky analýzy v přístupu zdola nahoru počínaje uzly typu list v grafu závislostí.
Pro spuštění použijte následující příkaz:
ApiPort.exe analyze -r DGML -f [directory or file]
Výsledek by při otevření v sadě Visual Studio vypadal takto:
Analýza přenositelnosti
Zadáním následujícího příkazu analyzujte aktuální adresář:
ApiPort.exe analyze -f .
Pokud chcete analyzovat konkrétní seznam .dll souborů, zadejte následující příkaz:
ApiPort.exe analyze -f first.dll -f second.dll -f third.dll
Pokud chcete cílit na konkrétní verzi, použijte -t
parametr:
ApiPort.exe analyze -t ".NET, Version=5.0" -f .
Spusťte a získejte ApiPort.exe -?
další nápovědu.
Doporučujeme, abyste zahrnuli všechny související .exe a .dll soubory, které vlastníte a chcete portovat, a vyloučili soubory, na které vaše aplikace závisí, ale nevlastníte a nemůžete je portovat. Tím získáte nejrelevavantnější sestavu přenositelnosti.
Zobrazení a interpretace výsledku přenositelnosti
V sestavě se zobrazí pouze rozhraní API, která nejsou podporována cílovou platformou. Sestava přenositelnosti rozhraní .NET byla uložena jako soubor ve formátu, který jste zadali. Výchozí hodnota je v excelovém souboru (.xlsx) v aktuálním adresáři.
Souhrn přenositelnosti
Část Souhrn přenositelnosti sestavy zobrazuje procento přenositelnosti pro každé sestavení zahrnuté v běhu. V předchozím příkladu je v .NET Core + Platform Extensions k dispozici 71,24 % rozhraní API rozhraní .NET Framework použitých v svcutil
aplikaci. Pokud spustíte nástroj .NET Portability Analyzer pro více sestavení, každé sestavení by mělo mít řádek v sestavě Souhrn přenositelnosti.
Detaily
V části Podrobnosti sestavy jsou uvedena chybějící rozhraní API z některé z vybraných cílových platforem.
- Typ cíle: Typ postrádá API na cílové platformě.
- Cílový člen: V cílové platformě chybí metoda.
- Název sestavení: sestavení rozhraní .NET Framework, ve které chybí rozhraní API.
- Každá z vybraných cílových platforem je jeden sloupec, například .NET Core: Hodnota Nepodporovaná hodnota znamená, že rozhraní API není na této cílové platformě podporované.
- Doporučené změny: doporučené rozhraní API nebo technologie, na které se mají změnit. V současné době je toto pole prázdné nebo zastaralé pro mnoho rozhraní API. Vzhledem k velkému počtu rozhraní API je důležité udržovat je v aktualizovaném stavu.
Chybějící sestavení
Ve své zprávě můžete najít oddíl Chybějící sestavy. Tato část obsahuje seznam sestavení, na která odkazují analyzovaná sestavení a nebyla analyzována. Pokud je sestavení, které vlastníte, zahrňte ho do spuštění analyzátoru přenositelnosti rozhraní API, abyste získali podrobnou sestavu přenositelnosti na úrovni rozhraní API. Pokud se jedná o knihovnu třetí strany, zkontrolujte, jestli existuje novější verze, která podporuje vaši cílovou platformu, a zvažte přechod na novější verzi. Seznam by nakonec měl obsahovat všechna sestavení třetích stran, která vaše aplikace závisí na verzi podporující vaši cílovou platformu.
Viz také
Další informace o analyzátoru přenositelnosti .NET najdete v dokumentaci k GitHubu.