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