This repo contains .NET Portability Analyzer (VSIX and Console) libraries and tools
You may have run into some .NET APIs throw PlatformNotSupportedException or NotImplementedException on some platforms. How to detect that your program uses any of these APIs before migrating your software to the target .NET version so that you won’t run into them at execution time as a surprise? This exception analyzer feature analyzes your binaries and report .NET APIs throw PNSE and NIE exceptions. You can opt-in the feature by specifying “-x” or “--showExceptionApis” command line option. This feature is supported in excel and json report formats. #897
When your application has large number of dependencies, figuring out the porting order maybe challenging due to complex inter-dependencies amount the referenced components. This porting order recommendation feature analyzes the dependency components of a given entrypoint application, uses bottom-up approach to recommend porting order from the leaf components to the root application. You can opt-in the feature by specifying “--entrypoint
When you run APIPort against a folder, you may noticed that all the assemblies under the folder are analyzed including the Microsoft .NET assemblies, like system..dll, Microsoft.dll. It is not helpful to analyze these MS assemblies since it’s not actionable for you. In this release, APIPort skips analyzing Microsoft .NET assemblies and report them as “skipped assemblies” in the “unsolved assembly” worksheet of the excel report.
You can install ApiPort by command "dotnet tool install --global ApiPort"
DotNet Portability Service is the back-end Azure service for ApiPort client tool. We made a new back-end Azure service release in last week. The release includes quite some engineering improvements, including ported Portability Service from .NET Platform code to .NET Core. It is running as self-contained .NET Core App; aligned the service using the same version of portability libraries as APIPort tool does with over 1 year of accumulated changes in the libraries, etc. Even though most of the back-end service updates are not directly visible to customers, this service release enabled some valuable features via APIPort tool, below are a couple of customer visible highlights:
DGML format report DGML format report is now available through both APIPort offline and online mode via CLI command now. DGML format report shows the assemblies dependency relationship in graph with the portability percentage summary and capability to drill down to the list of missing .NET APIs per assembly. When your app has complicated dependencies and wants to port it and its dependencies to later .NET Version, making decision of which component to start the porting can be challenging, DGML format report is especially helpful in this situation to show you overall picture visually. Sample command to generate DGML format report: apiport analyze -f c:\temp\foo -r DGML -t ".NET Core, Version=3.1"
Fixed some accessibility bugs, with this release, Both APIPort report UI and VS extension meets accessibility level C standard.
If you already have APIPort v2.7.0 client tool, these features should light up automatically. Otherwise, please download it from http://aka.ms/apiportdownload or download Apiport.2.7.0.zip from this release note.