Exceptions analyzer and report
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
Porting order recommendation
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 ” command line option #906
Skip Microsoft .NET assemblies
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.
Released ApiPort as DotNet global tool on NuGet.org
You can install ApiPort by command "dotnet tool install --global ApiPort"
Updated ApiPort and portability libraries to .NET Core 3.1
Moved to YAML file based Azure DevOps build pipeline.
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.
- Made ApiPort tool to be .NET Core Global tool (#790)
- Added DGML report format support. This feature will be visible when backend service is updated in the near future (#695, #796, #815)
- Improved accessibility (#783, #792)
- Moved HTML report generator to a razor library (#742)
- Added DiagnosticListener to report ServiceProvider (#745)
- Updated TargetNameParser to understand versions (#757)
- Reported .Html works on .NET Framework (#751)
- Updated the HyperLinks to About and Privacy docs on Portability Analyzer Setting are not navigable (#765)
- Updated the document link in excel report (#807)
- Fixed Assembly name header name in Excel report (#779)
- Upgraded .NET Portability libraries from .NET Standard 1.3 to .NET Standard 2.0 (#790)
- Upgraded ApiPort Console apps to target .NET Core 2.1 and .NET Framework 4.6.1 and upgraded ApiPort VS extension to target .NET Framework 4.6.1 to consume .NET standard 2.0 libraries (#790)
- Changed IReportWriter.WriteStream to be async (#743)
- Removed requiring AssemblyReferenceInformation for IDependencyFilter to reduce memory allocation (#784)
- Added JsonPublicKeyTokenconverter to Serialize PublicKeyToken (#800)
- Set up some caching in json conversion (#785)
- Updated Authenticode signing certificate to SHA2 (#826)
- Heuristic to limit customer API collection by only sending APIs that are most likely Microsoft APIs to the web service
- Target mapper and breaking changes suppression will now pick up configuration from ApiPort directory
- Fixes to the help message
- Various bug fixes