标签: fxcop

从FxCop代码分析中排除完整的命名空间?

是否可以从所有FxCop分析中排除完整的命名空间,同时仍然使用SuppressMessageAttribute?分析组件的其余部分?

在我目前的情况下,我有一堆由LINQ to SQL生成的类导致很多FxCop问题,显然,我不会修改所有这些以匹配FxCop标准,因为如果我有很多这些修改将会消失重新生成了类.

我知道FxCop有一个项目选项来禁止对生成的代码进行分析,但它似乎没有将LINQ 2 SQL创建的实体和上下文类识别为生成的代码.

fxcop

22
推荐指数
2
解决办法
8338
查看次数

c#warning - 使用NeutralResourcesLanguageAttribute标记程序集

我收到以下警告: " CA1824标记具有NeutralResourcesLanguageAttribute的程序集"

根据MSDN,原因是:程序集包含基于ResX的资源,但没有应用System.Resources.NeutralResourcesLanguageAttribute.

谁能解释一下这意味着什么?我不想定义具体的文化背景.我希望它们可以自定义.

c# warnings fxcop

21
推荐指数
2
解决办法
7547
查看次数

CA1500与SA1309 - 哪一个获胜?

我的前缀是说我理解Code Analysis和StyleCop都是指导原则,很多人选择忽略这些.但话说回来,我想看看这两条规则的普遍共识是什么.

规则CA1500表示不要使参数名称和私有字段名称相同.

另一方面,规则SA1309表示不要为成员添加下划线或"m_"作为前缀.

这使我们几乎没有选择区分私有支持字段与其相应的参数.拿这些例子.

SA1309抱怨:

class SomeClass
{
    int _someField;

    public SomeClass(int someField)
    {
        this._someField = someField;
    }
}
Run Code Online (Sandbox Code Playgroud)

CA1500抱怨:

class SomeClass
{
    int someField;

    public SomeClass(int someField)
    {
        this.someField = someField;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有什么选择?我不想创建私有支持字段PascalCase,因为这是公共字段/属性的(我相信相当普遍的)约定.而且我不想重命名其中一个,只是为了解决歧义.

所以我留下了上面两个中的一个,这将要求我压制其中一个SA/CA规则.

你们通常做什么?更重要的是,这些规则的作者认为你应该做些什么(因为它们都没有在他们的文档中提供替代解决方案)?

c# code-analysis fxcop stylecop naming-conventions

20
推荐指数
1
解决办法
4215
查看次数

在代码分析中使用Microsoft.Bcl.Async会导致错误

我正在尝试使用Microsoft.Bcl.Async和代码分析,但是当我运行代码分析时,我得到一个或多个错误.

我正在使用Visual Studio 2012和Update 2.

这对我来说很容易重现:

  1. 创建一个新的默认控制台应用程序.Net 4.
  2. 右键单击References然后选择Manage NuGet Packages...
  3. 单击OnlineasyncSearch Online框中键入.
  4. 你应该看到Async for .Net Framework 4 ....点击Install并接受所有问题.
  5. 添加到Main()一行说:TaskEx.Delay(1000);和ausing System.Threading.Tasks;
  6. 转到项目属性,代码分析部分并勾选Enable Code Analysis on Build.
  7. 编译程序.

我收到两个代码分析错误:

CA0052运行代码分析时出错CA0052:未选择任何目标.[错误和警告](全球)

CA0055运行代码分析CA0055时出错:无法加载ConsoleApplication2.exe.读取模块"ConsoleApplication2"时遇到以下错误:无法解析成员引用:[Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a] System.Threading.Tasks.TaskEx :: Delay.[错误和警告](全球)

我为其他测试程序得到了不同的代码分析错误.我试过的基本Windows窗体应用程序给了我:

CA0001错误运行代码分析CA0001:读取模块"AsyncForNet4"时遇到以下错误:无法解析成员引用:[Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a] System.Threading. Tasks.TaskEx ::延迟.[错误和警告](全球)

两个问题:

  1. 其他人可以重现这个问题吗?
  2. 有人有解决方案吗?

c# code-analysis fxcop base-class-library

20
推荐指数
1
解决办法
5477
查看次数

在源代码中排除代码分析规则

在我正在研究FxCop的项目中,我向Windows窗体设计器生成的InitializeComponent()方法显示了很多(我的意思是400多个)错误.大多数错误只是标签的Text属性的赋值.

我想在源代码中禁止这些方法,因此我将FxCop生成的抑制代码复制到AssemblyInfo.cs中,但它不起作用.

这是FxCop复制到剪贴板的属性.

[module: SuppressMessage("Microsoft.Globalization",
    "CA1303:DoNotPassLiteralsAsLocalizedParameters",
    Scope = "member",
    Target = "WindowsClient.MainForm.InitializeComponent():System.Void",
    MessageId = "System.Windows.Forms.Control.set_Text(System.String)")]
Run Code Online (Sandbox Code Playgroud)

任何人都知道正确的属性来压制这些消息?

PS:我使用的是Visual Studio 2005,C#,FxCop 1.36 beta.

code-analysis fxcop initializecomponent suppression visual-studio

19
推荐指数
1
解决办法
6547
查看次数

FxCop 1.36已经不见了

我只是想下载FxCop 1.36但我在互联网上找不到它.几天前,FxCop 10出现在Windows 7上,但我需要旧版本.该文件在MS服务器上消失,每个人都链接它.

任何人都有旧的安装程序?

installer fxcop

19
推荐指数
2
解决办法
8807
查看次数

CA1026(所有参数应具有默认值)和扩展方法

前提

使用带有C#可选参数的代码分析(或fxCop)时,您可以收到CA1026的警告.对此的简短原因1不是使用默认值来提供所有参数.

下面的声明正确地生成了此警告

public Color GetColor(bool red, bool blue = true, bool green = true)
Run Code Online (Sandbox Code Playgroud)

但是,有一种情况是您无法使用默认值提供所有参数,这就是扩展方法.因此,下面的声明会因为第一个参数而生成警告:

public static bool ValidateRules(this string s, Rules rules = Rules.Default)
Run Code Online (Sandbox Code Playgroud)

编译器不允许您在this参数上指定默认值,因此只有两个解决方案是:

  1. 忽略警告,我不喜欢这样做,因为它会导致不良做法.
  2. 不使用扩展方法,我不喜欢这样做,因为我发现扩展方法使代码更易读.

问题

  • 以上两个选项是解决这个问题的唯一方法吗?
  • fxCop/Code Analysis在检查中是否不正确?

  1. 长期的原因

c# extension-methods code-analysis fxcop

19
推荐指数
1
解决办法
6376
查看次数

FxCop死了吗?可以和VS2015一起使用吗?

我正在浏览Stack Overflow和Google,了解有关自动编码风格练习工具的信息,并找到了FxCop.

但我没有找到微软最近关于FxCop的文章.所以,我想知道FxCop是否已经死了.

FxCop可以与Visual Studio 2015一起使用吗?它是否适用于执行C#设计指南?

c# fxcop coding-style

19
推荐指数
2
解决办法
2万
查看次数

为什么 Microsoft.CodeAnalysis 与 ASP.NET Core 网站一起发布?

我正在发布一个 ASP.NET Core MVC 3.0 网站,输出文件夹包含许多语言的库引用Microsoft.CodeAnalysis,有人知道为什么吗?

当然FxCopAnalyzers,项目中安装了Nuget 包,但它没有在项目的早期版本中发布,所以我不明白为什么现在它应该只在开发时有用,而不是在生产环境中使用。

fxcop asp.net-core microsoft.codeanalysis

18
推荐指数
4
解决办法
5767
查看次数

如何使用SupressMessage抑制FxCop规则'DoNotCatchGeneralExceptionTypes'?

我有代码捕获所有内容并记录它.我通常不会这样做,但我正在编写HTTP处理程序并希望返回适当的HTTP代码.无论如何,我在我的方法的顶部放置以下内容:

[SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "We just log the exception and return an HTTP code")]

FxCop似乎忽略了这一点,这非常令人沮丧.特别是因为它也忽略了我所有的复合词覆盖!

知道为什么这样做吗?我正在使用FxCop 10,它是Windows 7/.NET 4 SDK的一部分.

fxcop

17
推荐指数
1
解决办法
8952
查看次数