- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 FxCopCmd 工具进行静态代码分析。由于我们已经拥有庞大的代码库,因此我们使用 FxCop 附带的 baseline.exe 工具对现有问题进行了基线处理。
我观察到,如果我向我的 C# 类添加一个新方法,那么 GlobalSuppression.cs 文件中的一些抑制消息将停止工作,并且我会遇到我未触及的代码的问题。
例子:
namespace ConsoleApplication1
{
class Program
{
public async Task<string> method1()
{
string a = "";
a.Equals("abc", StringComparison.InvariantCultureIgnoreCase);
return a;
}
static void Main(string[] args)
{
}
}
}
这会引发以下错误:
CA1031 : Microsoft.Design : Modify 'Program.d__0.MoveNext()' to catch a more specific exception than 'Exception' or rethrow the exception
为了抑制“CA1309 UseOrdinalStringComparison”问题,我在 GlobalSuppression.cs 文件中添加了以下抑制消息
[module: SuppressMessage("Microsoft.Globalization", "CA1309:UseOrdinalStringComparison", Scope="member", Target="ConsoleApplication1.Program.d__0.MoveNext()", MessageId="System.String.Equals(System.String,System.StringComparison)", Justification="")]
但如果我在类中再添加一个方法,则此抑制消息将停止工作。这是因为 method1 是异步的,因此在编译代码中创建了一个新类 ( refer this )(在第一种情况下是 <method1>d__0
)。但是当我在 method1 之前添加另一个方法时,编译代码中创建的新类名为 <method1>d__1
.因此,不会应用抑制消息,FxCop 再次开始显示代码中的错误。
有没有办法永久抑制异步方法的 FxCop 错误?
最佳答案
所以即使设置了赏金,问题也没有得到解答。但是,我找到了解决方法(如果不是解决方案的话)。
提到的问题是由于编译器为异步方法生成的代码。由于 FxCopCmd 在 dll 上运行,随着编译器生成的代码发生更改,现有的抑制消息变得无用。但是,Visual Studio 不会仅通过使用 FxCopCmd 来运行代码分析。它智能地运行代码分析,忽略异步方法。 (根据我的调查,它没有对异步方法运行任何类型的代码分析。这一定是由于所讨论的问题所致。)
要在 CI 构建中获得与 Visual Studio 相同的行为,我们可以使用 fxcoptask.dll 对代码运行 FxCop 分析。引用this answer了解如何在构建中集成 FxCop。这将解决问题中提到的问题。此外,它还提供了许多自定义选项。
关于c# - FxCop:异步方法的抑制消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40512289/
我熟悉 MSDN list ,但我想要一个按代码排序的列表。我们的许多开发人员无法方便地访问互联网,如果我能为他们提供离线的完整警告列表,那就太好了。 我希望它们按警告代码排序,因为这是它们在 Fxc
我将使用 fxcop 分析同一个 dll 的两个不同版本。 我只想显示这两个报告之间的差异。 有谁知道这是否可能? 谢谢你的时间。 最佳答案 是的,这是可能的,但是没有可用的内置工具。一种相当简单的方
我们所有的开发人员都使用 VS2010 专业版,因此无法进行代码分析。我希望他们在 checkin 之前使用 FxCop 来分析代码。我已经通过了规则并禁用了其中的一些规则并添加了其中的一些。我希
您希望看到哪些可定义的静态代码检查规则添加到 FxCop 和/或宪兵队? 您为什么希望看到添加的规则,例如有什么好处等? 你的规则如何实现? 最佳答案 我想很快地定义和实现我自己的规则。我为 FxCo
FxCop 为字段分配默认默认值时(此处为 false 为 bool): Resolution : "'Bar.Bar()' initializes field 'Bar.foo'
我们正在使用 FxCop,它会产生太多我们喜欢的误报。例如,如果使用反射调用私有(private)方法,则该方法被报告为可能未使用 - 可以理解,我们使用 SuppressMessage 属性显式抑制
FxCop 有一个 rule (CA1726)检查首选术语。这会查找诸如“Dont”之类的词,并告诉您将它们替换为“Do not”等更好的词。通常这很好,但是它反对的术语之一是“标志”。在我们公司,业
我在 TeamCity 8.0.6(内部版本 27767)中添加了一个构建步骤,以针对特定的 c# 项目程序集执行 FxCop。 当从 VS 2013 中运行 FxCop 并设置 MinimumRec
问题是什么? 我正在尝试安装 FxCop 10。要安装它,需要 Microsoft Windows SDK 7.1。我安装了 SDK。现在,要安装 FxCop,我必须运行 FxCopSetup.exe
我正在试用 FxCop(目前通过 UI,不包括在 CruiseControl.NET 等中)并且遇到了一些问题。拼写检查器似乎不喜欢我客户的公司名称和产品名称,它要求我: Correct the sp
希望在程序上使用静态调用图分析来发现哪些问题? FxCop 使用静态调用图分析,使用这种技术发现了什么问题? http://msdn.microsoft.com/library/bb429476.as
我尝试在精简版应用程序上使用 Microsoft FXCop 1.36 版,但在分析项目时出现以下错误。 The following referenced assembly could not be
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 8年前关闭。 Improve t
我最近开始在 Visual Studio 中的项目中使用代码分析。我创建了一个自定义规则集,用于我的所有项目,其中包括两个 Microsoft 定义的规则集。我一直在努力将 FxCop 集成到 CI
我有捕获所有内容并将其记录的代码。我通常不这样做,但是我正在编写一个HTTP处理程序,并希望返回适当的HTTP代码。无论如何,我将以下内容放在方法的顶部: [SuppressMessage("Micr
是否可以从所有FxCop分析中排除完整的 namespace ,同时仍使用SuppressMessageAttribute分析其余的程序集? 在我目前的情况下,我有一堆由LINQ to SQL生成的类
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我正在使用以下配置的构建服务器上构建和分析示例 C# 项目: Jenkins 1.630; SonarQube 5.3 及所有更新; FxCop 10.0 我在 Jenkins Job 中添加了以下步
我正在尝试通过 Sonar-runner 运行 FxCopCmd 10.0。但是,FxCop 返回错误,即使它生成了分析报告。由于它返回错误,因此 sonar-runner 不会发出报告。 为了隔离问
运行 FXCop 时出现以下错误: CA1800 : Microsoft.Performance : 'obj', a variable, is cast to type 'Job' multiple
我是一名优秀的程序员,十分优秀!