dotnet-apiport icon indicating copy to clipboard operation
dotnet-apiport copied to clipboard

.NetCoreApp TFM is not recognized

Open tarekgh opened this issue 7 years ago • 8 comments

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.

tarekgh avatar May 12 '17 17:05 tarekgh

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.

conniey avatar May 12 '17 21:05 conniey

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

tarekgh avatar May 12 '17 21:05 tarekgh

We can probably use the targetMap.xml infrastructure to add a mapping for that

twsouthwick avatar May 25 '17 14:05 twsouthwick

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)

conniey avatar Jun 14 '17 01:06 conniey

Can you share the targetMap.xml you're using?

twsouthwick avatar Jun 15 '17 16:06 twsouthwick


<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>

conniey avatar Jun 15 '17 18:06 conniey

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>

twsouthwick avatar Jun 15 '17 19:06 twsouthwick

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)

conniey avatar Jun 15 '17 20:06 conniey

Closing as API Port was deprecated in favor of binary analysis in .NET Upgrade Assistant.

terrajobst avatar Nov 15 '22 23:11 terrajobst