.NET API Portability

November 15, 2022 ยท View on GitHub

Note: We're in the process of deprecating API Port in favor of integrating binary analysis directly into .NET Upgrade Assistant. In the upcoming months, we're going to shutdown the backend service of API Port which will require to use the tool in offline mode. The instructions to use API Port in offline mode can be found here.

This repository contains the source code for .NET Portability Analyzer tools and dependencies.

BranchBuild Status
mainBuild Status
devBuild Status

For a quick introduction, check out this video on Shows:

There is a Visual Studio extension available for VS 2017 and VS 2019: .NET Portability Analyzer

Using this Repository

See our contributing guide for instructions to build and run from the source code in this repo.

Sample usage to run the analysis from the command line:

./init.ps1
dotnet build src/ApiPort/ApiPort/ApiPort.csproj
dotnet bin/Debug/ApiPort/netcoreapp2.1/ApiPort.dll -- listTargets
dotnet bin/Debug/ApiPort/netcoreapp2.1/ApiPort.dll -- analyze -f Foo.dll -r HTML

If using bash for your shell, for convenience you may create an alias command adding the following to your ~/.bash_profile. Replace {dotnet-apiport-folder} with the path where you cloned the repo.

alias apiport="dotnet {dotnet-apiport-folder}/bin/Debug/ApiPort/netcoreapp2.1/ApiPort.dll"

This will allow you to use apiport globally from the command line: apiport analyze -f Foo.dll -r HTML

Documentation

Projects

ProjectDescription
ApiPortCross-platform console tool to access portability service
ApiPort.VsixVisual Studio Extension
Microsoft.Fx.PortabilityProvides common types for API Port
Microsoft.Fx.Portability.MetadataReaderImplements a dependency finder based off of System.Reflection.Metadata. The library will generate DocIds that conform to these specifications.
Microsoft.Fx.Portability.OfflineProvides access to data in an offline setting so network calls are not needed
Microsoft.Fx.Portability.Reporting.ExcelProvides support for an Excel spreadsheet report for ApiPort
Microsoft.Fx.Portability.Reporting.HtmlProvides support for an HTML report for ApiPort
Microsoft.Fx.Portability.Reporting.JsonProvides support for a JSON reporter for ApiPort

Downloads

Location
ApiPort CLIApiPort Download
Visual Studio ExtensionOpen VSIX Gallery

Privacy:

We only send .NET APIs and its caller user assembly names to the service to analyze for portability and generate report. For more information, check out our privacy policy.

How to Engage, Contribute and Provide Feedback

Here are some ways to contribute:

Want to get more familiar with what's going on in the code?

Looking for something to work on? The list of up-for-grabs issues is a great place to start.

For an overview of all the .NET related projects, have a look at the .NET home repository.

License

This project is licensed under the MIT license.