【问题标题】:How do I find all the non CLS-compliant statements in my .NET code?如何在我的 .NET 代码中找到所有不符合 CLS 的语句?
【发布时间】:2017-02-15 10:24:03
【问题描述】:

如何在我的 .NET 代码中找到所有不符合 CLS 的语句?

Visual Studio 2015 编译器可以做到吗?如何找到不符合 CLS 的警告?

我检查了StyleCop ReSharper extensionndepend 都没有成功。

我所追求的是在我的 C# 代码 Visual Studio 项目中找到所有不符合 CLS 的语句。最终目标是给它添加[assembly: CLSCompliant(true)]标签。

谢谢。

【问题讨论】:

  • 使用 [assembly: CLSCompliant(true)] 会使 c# 编译器在不符合 CLS 的代码上显示警告。那你还需要什么?
  • 我有很多警告,不知道如何识别符合 CLS 的警告。
  • 嗯,它们(我认为它们都是)在CS3000 范围内
  • 我的错误列表窗口中没有显示代码列。现在我可以看到它们并按代码排序,出现了许多CS3000 警告。非常感谢,请添加并回答,以便我可以标记帖子已回答。
  • 很高兴它帮助了 Alberto

标签: c# .net vb.net cls-compliant


【解决方案1】:

使用 [assembly: CLSCompliant(true)] 会使 c# 编译器在不符合 CLS 的代码上显示警告。 CLSCompliant 警告的代码通常在CS3000 范围内,因此您可以按代码排序以检查所有警告。

【讨论】:

    【解决方案2】:

    对于 VB.NET,使用这个:

    <Assembly: CLSCompliant(True)>
    

    另外,在将上述内容添加到 AssemblyInfo.vb 文件后,不要忘记 Build-Clean Solution 和 Build-Rebuild Solution。

    【讨论】:

    • @BACON - 为什么不让它变得简单?
    • 我看过“为什么不让它变得简单?”之前在这些 C#-to-VB.NET 翻译答案上提出的论点,甚至只是采用另一个答案并将其重新打包为扩展方法的答案。关键是,这是另一个答案的衍生,并且与另一个答案几乎没有区别,我认为这没有理由将一个近三年前的问题放到首页的顶部。如果两种语言之间的代码差异很大,您肯定会有一个案例,但这里唯一的区别是使用的括号类型;我知道 VB.NET 会接受小写的 true 甚至可能是 assembly:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 2010-11-15
    相关资源
    最近更新 更多