How to mark .NET Standard code as CLS-compliant?

5.4k Views Asked by At

The title says it all - how do I flag a .NET standard library as CLS-compliant?

I wrote a simple library in C# targeting .NET Standard 1.0 framework. It includes two enums:

public enum Alignments { Left, Center, Right }
public enum Actions { None, Total, Average, Count }

When I try to use the library in a .NET 4.6 project it flags the enums as non-CLS-compliant:

Warning CS3001 Argument type 'Actions' is not CLS-compliant

I cannot add anything to AssemblyInfo.cs since this is not used by .NET standard. It does not seem to be supported as a property in the .csproj file either.

1

There are 1 best solutions below

0
Quango On BEST ANSWER

There isn't an AssemblyInfo.cs file, but assembly attributes can be added to any file in a .NET Standard project.

So adding this to a C# file in the project will make the assembly CLS-compliant:

using System; [assembly: CLSCompliant(true)]

Reference: NetStandard v1.0 docs

For convention I'll create an AssemblyInfo.cs file and place it there anyway.