A .NET hordozhatósági elemzője

Feljegyzés

Az API-portot a .NET frissítési asszisztense a bináris elemzés javára elavulta. Az API-port háttérszolgáltatása le lett állítva, ezért az eszköz használatához offline állapotban kell használnia. További információ: .NET API Port README.

Többplatformossá szeretné tenni a kódtárakat? Szeretné megtudni, hogy mennyi munka szükséges ahhoz, hogy a .NET-keretrendszer alkalmazás a .NET Core-on fusson? A .NET hordozhatóság-elemző egy olyan eszköz, amely szerelvényeket elemez, és részletes jelentést nyújt azokról a .NET API-król, amelyek hiányoznak ahhoz, hogy az alkalmazások vagy kódtárak hordozhatóak legyenek a megadott célzott .NET-platformokon. A Hordozhatóság-elemző Visual Studio-bővítményként érhető el, amely projektenként egy szerelvényt elemez, és egy ApiPort-konzolalkalmazásként, amely meghatározott fájlok vagy címtárak alapján elemzi a szerelvényeket.

Miután átalakította a projektet az új platform ( például a .NET Core) megcélzására, a Roslyn-alapú platformkompatibilitás-elemző használatával azonosíthatja a kivételeket és egyéb kompatibilitási problémákat okozó PlatformNotSupportedException API-kat.

Gyakori célok

  • .NET Core: Moduláris kialakítással rendelkezik, támogatja a párhuzamos telepítést, és platformfüggetlen forgatókönyveket céloz meg. A párhuzamos telepítés lehetővé teszi, hogy új .NET Core-verziókat vezessen be anélkül, hogy más alkalmazásokat feltörnél. Ha az a cél, hogy az alkalmazást a .NET Core-ba portozza, és több platformot is támogatjon, ez az ajánlott cél.
  • .NET Standard: Tartalmazza az összes .NET-implementációban elérhető .NET Standard API-kat. Ha a cél az, hogy a kódtár minden .NET-támogatott platformon fusson, ez ajánlott cél.
  • ASP.NET Core: A .NET Core-ra épülő modern web-keretrendszer. Ha az a cél, hogy a webalkalmazást a .NET Core-ba portozza több platform támogatásához, ez az ajánlott cél.
  • .NET Core + platformbővítmények: A .NET Core API-kat a Windows kompatibilitási csomag mellett tartalmazza, amely számos .NET-keretrendszer elérhető technológiát biztosít. Ez egy ajánlott cél az alkalmazás .NET-keretrendszer-ból a Windows .NET Core-ba való átviteléhez.
  • .NET Standard + platformbővítmények: A .NET Standard API-kat a Windows kompatibilitási csomag mellett tartalmazza, amely számos .NET-keretrendszer elérhető technológiát biztosít. Ez egy ajánlott cél a tár .NET-keretrendszer-ból a Windows .NET Core-ba történő átviteléhez.

A .NET hordozhatósági elemző használata

A .NET Portability Analyzer Visual Studióban való használatához először le kell töltenie és telepítenie kell a bővítményt a Visual Studio Marketplace-ről. A Visual Studio 2017 és a Visual Studio 2019 verziókon működik.

Fontos

A .NET hordozhatósági elemző nem támogatott a Visual Studio 2022-ben.

Konfigurálja a Visual Studióban az Analyze>Portability Analyzer Gépház segítségével, és válassza ki a célplatformokat, amelyek azok a .NET-platformok/verziók, amelyekkel értékelni szeretné a hordozhatósági hiányosságokat, összehasonlítva azzal a platformmal/verzióval, amellyel az aktuális szerelvény készült.

Screenshot of portability analyzer.

Használhatja az ApiPort konzolalkalmazást is, és letöltheti azt az ApiPort-adattárból. A parancsbeállítással listTargets megjelenítheti az elérhető céllistát, majd kiválaszthatja a célplatformokat a parancs vagy a -t--target parancs beállításával.

Megoldás széles nézete

Egy sok projekttel rendelkező megoldás elemzésének hasznos lépése a függőségek vizualizációja, amelyből megtudhatja, hogy a szerelvények mely részhalmaza függ attól, hogy mitől. Az általános javaslat az elemzés eredményeinek alulról felfelé történő alkalmazása, kezdve a függőségi gráf levélcsomópontjaival.

A lekéréshez futtassa a következő parancsot:

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

Ennek eredménye a következőhöz hasonlóan nézne ki a Visual Studióban való megnyitáskor:

Screenshot of DGML analysis.

Hordozhatóság elemzése

A teljes projekt Visual Studióban való elemzéséhez kattintson a jobb gombbal a projektre a Megoldáskezelő, és válassza az Szerelvény hordozhatóságának elemzése lehetőséget. Ellenkező esetben nyissa meg az Elemzés menüt, és válassza az Szerelvény hordozhatóságának elemzése lehetőséget. Innen válassza ki a projekt végrehajtható vagy DLL-fájlját.

Screenshot of Portability Analyzer from Solution Explorer.

Az ApiPort konzolalkalmazást is használhatja.

Írja be a következő parancsot az aktuális könyvtár elemzéséhez:

ApiPort.exe analyze -f .

A .dll fájlok adott listájának elemzéséhez írja be a következő parancsot:

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

Egy adott verzió megcélzásához használja a következő paramétert -t :

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

Futtassa ApiPort.exe -? a további segítséget.

Javasoljuk, hogy tartalmazza az összes kapcsolódó exe- és DLL-fájlt, amely a tulajdonában van, és portolni szeretné, és zárja ki azokat a fájlokat, amelyektől az alkalmazás függ, de ön nem rendelkezik saját fájlokkal, és nem tud portolni. Ez a legrelevánsabb hordozhatósági jelentést adja meg.

Hordozhatósági eredmény megtekintése és értelmezése

A jelentésben csak a célplatform által nem támogatott API-k jelennek meg. Miután futtatta az elemzést a Visual Studióban, megjelenik a .NET hordozhatósági jelentésfájl hivatkozása. Ha az ApiPort konzolalkalmazást használta, a .NET-hordozhatósági jelentés fájlként lesz mentve a megadott formátumban. Az alapértelmezett érték egy Excel-fájlban (.xlsx) található az aktuális könyvtárban.

Hordozhatóság összegzése

Screenshot of the Portability Summary.

A jelentés Hordozhatóság összegzése szakasza a futtatásban szereplő egyes szerelvények hordozhatósági százalékos arányát mutatja. Az előző példában az alkalmazásban használt .NET-keretrendszer API-k 71,24%-a érhető el a svcutil .NET Core + platformbővítményekben. Ha a .NET hordozhatósági elemző eszközt több szerelvényen futtatja, minden szerelvénynek rendelkeznie kell egy sortal a Hordozhatóság összegzése jelentésben.

Részletek

Screenshot of the Portability Details.

A jelentés Részletek szakasza felsorolja a kiválasztott célzott platformok egyikéből hiányzó API-kat.

  • Céltípus: a típus nem tartalmaz API-t egy célplatformról
  • Céltag: a metódus hiányzik egy célplatformról
  • Szerelvény neve: a hiányzó API .NET-keretrendszer szerelvénye.
  • A kiválasztott célplatformok mindegyike egy oszlop, például ".NET Core": a "Nem támogatott" érték azt jelenti, hogy az API nem támogatott ezen a célplatformon.
  • Javasolt módosítások: az ajánlott API vagy technológia, amelyre módosítani kell. Ez a mező jelenleg sok API esetében üres vagy elavult. A nagyszámú API-nak köszönhetően jelentős kihívást jelent, hogy naprakészen tarthassuk. Alternatív megoldásokat keresünk, amelyek hasznos információkat nyújtanak az ügyfeleknek.

Hiányzó szerelvények

Screenshot of missing assemblies.

Előfordulhat, hogy egy hiányzó szerelvények szakaszt talál a jelentésben. Ez a szakasz azoknak a szerelvényeknek a listáját tartalmazza, amelyekre az elemzett szerelvények hivatkoznak, és amelyeket nem elemeztek. Ha az ön tulajdonában lévő szerelvényről van szó, vegye fel az API hordozhatósági elemző futtatásába, hogy részletes, API-szintű hordozhatósági jelentést kapjon. Ha ez egy harmadik féltől származó kódtár, ellenőrizze, hogy van-e újabb verzió, amely támogatja a célplatformot, és fontolja meg az újabb verzióra való áttérést. Végül a listának tartalmaznia kell az összes külső gyártótól származó szerelvényeket, amelyektől az alkalmazás függ, és amelyek a célplatformot támogató verzióval rendelkeznek.

A .NET hordozhatóság-elemzőről további információt a GitHub dokumentációjában talál.