This repo contains a Roslyn-based metadata analyzer. The root command is fxr
.
You point the tool at a directory with assemblies you want to analyze, such as
$ ./fxr nullablestats /mystuff -o stats.csv
The -o variable is optional. If omitted, it will show the results in Excel.
You point the tool at a directory with reference assemblies and implementation assemblies. It produces a table for all APIs where the syntax between the two differ.
P:\fxr\fxr.cmd syntaxcomp -r D:\ref -i D:\impl -o D:\diff.csv
The -o variable is optional. If omitted, it will show the results in Excel.
This tool produces a list of .NET APIs that are platform specific. It does that
by looking at the [SupportedOSPlatform]
and [UnsupportedOSPlatform]
attributes.
You point the tool at the reference assemblies, such as
$ ./fxr platform-compat /runtime/artifacts/bin/ref/net5.0 -o apis.csv
The -o variable is optional. If omitted, it will show the results in Excel.
The resulting CSV/Excel report has the following shape:
Column | Description |
---|---|
Level | The type of API that was annotated (Assembly , Type , or Member ) |
Assembly | The assembly name of the annotated API |
Namespace | The namespace of the annotated API |
Type | The type name of the annotated API |
Member | The member name of the annotated API |
Kind | Indicates the type of annotation that was used: platform-specific means only specific OS are supported, platform-restricted means the API works on all platforms except the ones listed. |
Implicit | Indicates whether the API was directly annotated (No ) or whether its containing type or assembly was annotated (Yes ). |
<OS> |
Indicates which OS versions the API is support on. |