dotnet-apiport
dotnet-apiport copied to clipboard
.NetCoreApp TFM is not recognized
When using TFM like ".NetCoreApp, Version=2.0"
The tool will complain it is not recognized.
Unknown target '.NETCoreApp,Version=v2.0'
I know ".Net Core" will work but I think ".NetCoreApp, Version=2.0" is the real TFM used in the product and should be supported when used.
Also when the tool don't recognize the TFM, it'll be nice to have the tool display the list of the supported TFMs automatically. this will give a clue to the user what right TFM should be used.
Supported targets are shown using .\ApiPort.exe listTargets
. We don't use TFMs for our targets, we use their "DisplayName" that is taken from the ApiCatalog.
It should be: ApiPort.exe analyze -t ".NET Core, Version=2.0"
Yes, we did notice from the telemetry that an improvement would be to add suggestions... but it wasn't high priority due to the number of folks who fell into the issue. It would be nice to have though.
Supported targets are shown using .\ApiPort.exe listTargets. We don't use TFMs for our targets, we use their "DisplayName" that is taken from the ApiCatalog.
I know that. my point is would be nice to support both forms ".NET Core, Version=2.0" and ".NETCoreApp, Version=2.0". I am seeing both of them are valid TFMs
We can probably use the targetMap.xml
infrastructure to add a mapping for that
Hey @twsouthwick ,
I tried adding this on the server-side, and got these targets. Is this too wordy? Should I place it next to our ApiPort.exe drops instead? I wanted to add it on the server-side so we could update it without having to update clients.
C:\users\ApiPort.exe listTargets -e http://localhost
...
Available Targets:
Name: .NET Core
Versions: 1.0; 1.1; 2.0
Name: .NET Core + Platform Extensions
Versions: 1.0
Name: .NET Framework
Versions: 1.1; 2.0; 3.0; 3.5; 4.0; 4.5; 4.5.1; 4.5.2; 4.6; 4.6.1; 4.6.2*
Name: .NET Standard
Versions: 1.0; 1.1; 1.2; 1.3; 1.4; 1.5; 1.6*; 2.0
Name: .NET Standard + Platform Extensions
Versions: 1.6; 2.0
Name: ASP.NET Core
Versions: 1.0
Name: Mono
Versions: 2.0; 3.5; 4.0; 4.5
Name: Silverlight
Versions: 2.0; 3.0; 4.0; 5.0
Name: Windows
Versions: 8.0; 8.1; 10.0
Name: Windows Phone
Versions: 8.1
Name: Windows Phone Silverlight
Versions: 7.0; 7.1; 8.0; 8.1
Name: Xamarin Android
Versions: 1.0.0
Name: Xamarin iOS
Versions: 1.0.0.0
Available Grouped Targets:
- .NETCoreApp,Version=1.0 (.NET Core,Version=1.0)
- .NETCoreApp,Version=1.1 (.NET Core,Version=1.1)
- .NETCoreApp,Version=2.0 (.NET Core,Version=2.0)
- .NETFramework,Version=1.0 (.NET Framework,Version=1.0)
- .NETFramework,Version=2.0 (.NET Framework,Version=2.0)
- .NETFramework,Version=3.5 (.NET Framework,Version=3.5)
- .NETFramework,Version=4.0 (.NET Framework,Version=4.0)
- .NETFramework,Version=4.5 (.NET Framework,Version=4.5)
- .NETFramework,Version=4.5.1 (.NET Framework,Version=4.5.1)
- .NETFramework,Version=4.5.2 (.NET Framework,Version=4.5.2)
- .NETFramework,Version=4.6 (.NET Framework,Version=4.6)
- .NETFramework,Version=4.6.1 (.NET Framework,Version=4.6.1)
- .NETFramework,Version=4.6.2 (.NET Framework,Version=4.6.2)
- .NETFramework,Version=4.7 (.NET Framework,Version=4.7)
- .NETStandard,Version=1.0 (.NET Standard,Version=1.0)
- .NETStandard,Version=1.1 (.NET Standard,Version=1.1)
- .NETStandard,Version=1.2 (.NET Standard,Version=1.2)
- .NETStandard,Version=1.3 (.NET Standard,Version=1.3)
- .NETStandard,Version=1.4 (.NET Standard,Version=1.4)
- .NETStandard,Version=1.5 (.NET Standard,Version=1.5)
- .NETStandard,Version=1.6 (.NET Standard,Version=1.6)
- .NETStandard,Version=2.0 (.NET Standard,Version=2.0)
- Mobile (.NET Standard, Xamarin.Android, Xamarin.iOS)
Can you share the targetMap.xml
you're using?
<ApiTool>
<Targets>
<!-- Target Frameworks adapted from https://docs.microsoft.com/en-us/dotnet/standard/frameworks -->
<Target Name=".NET Core,Version=1.0" Alias=".NETCoreApp,Version=1.0" />
<Target Name=".NET Core,Version=1.1" Alias=".NETCoreApp,Version=1.1" />
<Target Name=".NET Core,Version=2.0" Alias=".NETCoreApp,Version=2.0" />
<Target Name=".NET Framework,Version=1.0" Alias=".NETFramework,Version=1.0" />
<Target Name=".NET Framework,Version=2.0" Alias=".NETFramework,Version=2.0" />
<Target Name=".NET Framework,Version=3.5" Alias=".NETFramework,Version=3.5" />
<Target Name=".NET Framework,Version=4.0" Alias=".NETFramework,Version=4.0" />
<Target Name=".NET Framework,Version=4.5" Alias=".NETFramework,Version=4.5" />
<Target Name=".NET Framework,Version=4.5.1" Alias=".NETFramework,Version=4.5.1" />
<Target Name=".NET Framework,Version=4.5.2" Alias=".NETFramework,Version=4.5.2" />
<Target Name=".NET Framework,Version=4.6" Alias=".NETFramework,Version=4.6" />
<Target Name=".NET Framework,Version=4.6.1" Alias=".NETFramework,Version=4.6.1" />
<Target Name=".NET Framework,Version=4.6.2" Alias=".NETFramework,Version=4.6.2" />
<Target Name=".NET Framework,Version=4.7" Alias=".NETFramework,Version=4.7" />
<Target Name=".NET Standard,Version=1.0" Alias=".NETStandard,Version=1.0" />
<Target Name=".NET Standard,Version=1.1" Alias=".NETStandard,Version=1.1" />
<Target Name=".NET Standard,Version=1.2" Alias=".NETStandard,Version=1.2" />
<Target Name=".NET Standard,Version=1.3" Alias=".NETStandard,Version=1.3" />
<Target Name=".NET Standard,Version=1.4" Alias=".NETStandard,Version=1.4" />
<Target Name=".NET Standard,Version=1.5" Alias=".NETStandard,Version=1.5" />
<Target Name=".NET Standard,Version=1.6" Alias=".NETStandard,Version=1.6" />
<Target Name=".NET Standard,Version=2.0" Alias=".NETStandard,Version=2.0" />
</Targets>
</ApiTool>
Try just using the name (I don't think version is needed):
<ApiTool>
<Targets>
<!-- Target Frameworks adapted from https://docs.microsoft.com/en-us/dotnet/standard/frameworks -->
<Target Name=".NET Core" Alias=".NETCoreApp" />
<Target Name=".NET Framework" Alias=".NETFramework" />
<Target Name=".NET Standard" Alias=".NETStandard" />
</Targets>
</ApiTool>
Nice! It works.
Available Targets:
Name: .NET Core
Versions: 1.0; 1.1; 2.0
Name: .NET Core + Platform Extensions
Versions: 1.0
Name: .NET Framework
Versions: 1.1; 2.0; 3.0; 3.5; 4.0; 4.5; 4.5.1; 4.5.2; 4.6; 4.6.1; 4.6.2*
Name: .NET Standard
Versions: 1.0; 1.1; 1.2; 1.3; 1.4; 1.5; 1.6*; 2.0
Name: .NET Standard + Platform Extensions
Versions: 1.6; 2.0
Name: ASP.NET Core
Versions: 1.0
Name: Mono
Versions: 2.0; 3.5; 4.0; 4.5
Name: Silverlight
Versions: 2.0; 3.0; 4.0; 5.0
Name: Windows
Versions: 8.0; 8.1; 10.0
Name: Windows Phone
Versions: 8.1
Name: Windows Phone Silverlight
Versions: 7.0; 7.1; 8.0; 8.1
Name: Xamarin Android
Versions: 1.0.0
Name: Xamarin iOS
Versions: 1.0.0.0
Available Grouped Targets:
- .NETCoreApp (.NET Core)
- .NETFramework (.NET Framework)
- .NETStandard (.NET Standard)
- Mobile (.NET Standard, Xamarin.Android, Xamarin.iOS)
Closing as API Port was deprecated in favor of binary analysis in .NET Upgrade Assistant.