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.
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:
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.
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
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
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
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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: