如何将 .NET Standard 代码标记为 CLS-compliant?

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

标题说明了一切 - 如何将 .NET 标准库标记为 CLS-compliant?

我用 C# 编写了一个针对 .NET Standard 1.0 框架的简单库。它包括两个枚举:

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

当我尝试在 .NET 4.6 项目中使用该库时,它会将枚举标记为非 CLS-compliant:

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

我无法向 AssemblyInfo.cs 添加任何内容,因为 .NET 标准不使用它。在 .csproj 文件中似乎也不支持作为 属性。

没有 AssemblyInfo.cs 文件,但可以将程序集属性添加到 .NET Standard 项目中的任何文件。

因此将其添加到项目中的 C# 文件将使程序集 CLS-compliant:

using System; [assembly: CLSCompliant(true)]

参考:NetStandard v1.0 docs

为了约定,我将创建一个 AssemblyInfo.cs 文件并将其放置在那里。