OpenSource library – Cross-platform targeting
Part 1 |
|
Part 2 |
|
Part 3 |
|
Part 4 |
|
Part 5 |
|
Part 6 |
|
Part 7 |
At https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/cross-platform-targeting there are the recommendations for Cross platform. Let’s see what needs to be done for https://github.com/ignatandrei/AOP_With_Roslyn
Let’s see:
Nr | Recommandation | AOP Roslyn |
1 | DO start with including a netstandard2.0 target. | Done – the main dll, AOPRoslyn, is already .netstandard2,0 |
2 | AVOID including a netstandard1.x target. | Not needed |
3 | DO include a netstandard2.0 target if you require a netstandard1.x target. | Not needed |
4 | DO NOT include a .NET Standard target if the library relies on a platform-specific app model. | Not needed |
5 | CONSIDER targeting .NET implementations in addition to .NET Standard. | Not needed |
6 | AVOID using multi-targeting with .NET Standard if your source code is the same for all targets. | Not needed |
7 | CONSIDER adding a target for net461 when you’re offering a netstandard2.0 target. | OK> see later point 9
|
8 | DO distribute your library using a NuGet package. | Done
https://www.nuget.org/packages/dotnet-aop
|
9 | DO use a project file’s TargetFrameworks property when multi-targeting | Struggle to implement/ partially done – modified AOPRoslyn.csproj |
10 | CONSIDER using MSBuild.Sdk.Extras when multi-targeting for UWP and Xamarin as it greatly simplifies your project file. | Not needed |
11 | DO NOT include a Portable Class Library (PCL) target. | OK |
12 | DO NOT include targets for .NET platforms that are no longer supported. | Not needed |
I tried to modify to include
<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
( Attention: Frameworks , not Framework)
First , you should publish the .csproj
dotnet publish <path to csproj>
should be modified with -f=”netstandard2.0″
Then , each dependency should support it :
error NU1202: Package PortableConsoleLibs 1.0.0 is not compatible with net461 (.NETFramework,Version=v4.6.1). Package PortableConsoleLibs 1.0.0 supports: netcoreapp2.0 (.NETCoreApp,Version=v2.0)
So you should contact the owners to support it – or re-compile the sources, if you have.
So I will stick with
“DO NOT include targets for .NET platforms that are no longer supported.” including NET461.
Conclusion: 11 / 12 it is a good score.
Leave a Reply