- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 StyleCop 和 FxCop 工具来改进我的代码,但我遇到了两个规则,一个在 StyleCop 中,一个在 FxCop 中,它们相互排斥。如果我修复我的代码以匹配 StyleCop 的规则,则 FxCop 验证失败,反之亦然。
第一条规则是来自 StyleCop 的 SA1200,其中规定所有 using 指令都必须放在命名空间内。
All using directives must be placed inside of the namespace.
所以我做了这样的事情
namespace MyNamespace
{
using System;
...
}
StyleCop 没问题,不再有警告。现在我运行 FxCop 验证,它告诉我违反了 CA1014:
Mark 'MyApp.dll' with CLSCompliant(true) because it exposes externally visible types.
要解决这个问题,我应该这样做:
[ClsCompliant(true)]
namespace MyNamespace
{
...
}
但现在我无法构建我的项目,因为无法识别 ClsCompliant
属性(因为它来自 System
命名空间,我将其包含在 MyNamespace
中).因此,如果我将 using System;
指令移到 MyNamespace
声明之外。这将使我的代码编译,但它会再次打破 StyleCop 的规则。
除了禁用 StyleCop 或 FxCop 中的规则之一之外,是否有任何方法可以解决此问题?如果这不可能,我应该禁用哪些规则?哪个不太重要?
最佳答案
使用完整的属性名称:
[System.CLSCompliant(true)]
namespace MyNamespace
{
...
}
顺便说一句:如果您想将整个程序集标记为 CLSCompliant,请放置
[assembly: System.CLSCompliant(true)]
在 Properties/AssemblyInfo.cs 文件中
关于c# - StyleCop 和 FxCop 规则相互排斥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371928/
我有以下内容,我收集到应该在特定代码行上禁用 stylecop 规则。 [SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules",
我已将以下导入语句添加到 csproj 文件中: 这项工作很好,但是我只希望样式 cop 分析在 Debug 版本上运行,而不是在 Release 版本上运行。我的 Google Fu 今天让我失望
StyleCop 规则 SA1642 坚持要求我的构造函数文档头必须以“初始化...的新实例”开头。 虽然我同意规则本身,但我就是无法让自己接受 StyleCop 强制执行我认为丑陋的拼写。它是用“s
是否有可能让 StyleCop 说这是使用花括号的正确方法? if (request.Query == string.Empty) { return SearchResponse.Empty;
我收到如下屏幕截图所示的警告,我不明白为什么会这样对待。我经常需要“区域化”我的代码。 你觉得怎么样? 最佳答案 虽然这个 StyleCop 规则确实只是一个建议,但我不会禁用它。这些#region
有人根据 IDesign 编码标准定制 StyleCop 规则吗? 最佳答案 你可能想尝试Code Style Enforcer 。它管理基于 iDesign 标准的规则。 我认为您可以为开发时完成的
我在 StyleCop 规则 SA1503 (CurlyBracketsMustNotBeOmitted) 上遇到了困难。 在我的代码中,我经常有一个模式: public void SomeFunct
我想使用 TeamCity 7.1 中的 StyleCop 构建运行器插件来测试我的项目中的 StyleCop 规则。每个项目都有自己的 StyleCop 设置文件,从 Visual Studio 进
我想将 StyleCop SuppressMessageAttribute 添加到某些代码中,但我不想要求安装 StyleCop。 我的项目是否需要引用 StyleCop 二进制文件?如果需要,引用哪
基于几篇好文章,我已经能够成功地创建一些自定义 StyleCop 规则。作为引用,这里列出了一些我发现对这个主题非常有用的文章: How to Implement a Custom StyleCop
我正在寻找设置文件以手动更改设置 - 但找不到。 我按照以下说明安装:http://stylecop.codeplex.com/wikipage?title=Setting%20Up%20StyleC
我正在我的 VS2015 中将 stylecop classic 升级到最新版本 (StyleCop.Analyzers 1.0.0),根据 GitHub 的介绍,我不能再使用 Settings.St
我被要求以如下方式将 StyleCop 集成到我们的 CI 构建过程中: 我们的单个项目文件 (大)解决方案不受影响 我不必使用任何 3rd 方 工具 第一个要求(我还没有完全理解这一点)是因为我们不
是否可以在一个项目中仅对1个文件运行StyleCop? 最佳答案 是的,通过从.cs文件的上下文菜单中而不是从“工具”菜单或项目的上下文菜单中选择“运行StyleCop”。 http://cleart
是否有任何方法可以配置 StyleCop 以忽略属性文档?我只想保留方法、构造函数和类的规则。我知道我们可以通过“包含字段”选项禁用字段。 最佳答案 规则 SA1609 和 SA1610 涵盖属性文档
如何对自定义规则使用抑制? 最佳答案 您可以使用 SuppressMessageAttribute 来抑制违反自定义规则的行为,其方式与对作为 StyleCop 的一部分发布的规则所做的完全相同。例如
我有一个非常简单的问题。是否打算同时运行 StyleCop 和 ReSharper? StyleCop 提供代码分析,但 Re-Sharper 也提供代码分析......它们真的都是必需的吗? 提前致
StyleCop 是一个很棒的视觉工作室小插件。但它不会向您显示实时提示或提供任何自动修复。 随之而来的是 reSharper 和 StyleCop for reSharper,这是理想的解决方案,但
我刚刚将 StyleCop 从 4.7.36.0 升级到 4.7.37.0(后者现在包括拼写支持)。 它在我的本地机器上运行良好。 但是,当它在 TeamCity 中运行时(以前在那里工作过),我现在
我在使用 StyleCop 时遇到了问题,这让我很抓狂。我最近在一台新机器上安装了它,每次我去编辑主设置文件(通过 Visual Studio 或 StyleCop 编辑器)时,我都会收到以下错误:
我是一名优秀的程序员,十分优秀!