标签: code-analysis

如何配置StyleCop以禁止生成代码的警告?

另一个项目,Visual Studio的代码分析有这个选项.但我找不到StyleCop(AKA Source Analysis).

我想忽略的文件是dbml的.designer.cs代码,其中包含// <autogenerated>标记.一篇博文告诉我这样就足够了,但就我而言,事实并非如此.

.net code-analysis code-generation stylecop visual-studio

6
推荐指数
1
解决办法
4767
查看次数

CA:抑制生成的代码无法在VS2010 beta 2中运行的结果

我正在尝试对包含实体模型(edmx文件)的程序集运行代码分析.在项目属性中,我检查了"从生成的代码中抑制结果"选项,但是我仍然收到很多与自动生成的EF代码有关的CA错误.

有没有人经历过这个?是否有解决方法?

code-analysis entity-framework visual-studio-2010

6
推荐指数
2
解决办法
2290
查看次数

使用规则集文件引用自定义代码分析规则库

关于Visual Studio 2010的自定义代码分析规则没有太多易于查找的信息.虽然这是我在我的问题中发现的...

在CodePlex上的示例库中,展示了如何部署自定义代码分析规则库,该规则库使用安装项目将库的DLL转储到程序文件文件夹 - > Microsoft Visual Studio 10.0 - >团队工具 - >静态分析工具 - > FxCop - >规则.

此外,Duke Kamstra的一篇非常有用的how-to 博客文章还建议将库的dll复制到%Program Files%\ Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules中.

我的偏好是避免在这样的全球位置粘贴DLL.我想让DLL相对于我的Visual Studio解决方案,所以当我用一些自定义代码分析规则更改更新DLL时,我不需要采取额外的步骤来保持DLL的依赖关系是最新的.

对我来说一个完美的解决方案是让我的自定义*.ruleset文件知道DLL的相对路径,但我没有成功.

有什么建议?

.net code-analysis visual-studio-2010

6
推荐指数
1
解决办法
3828
查看次数

为什么Bitmap会导致规则CA2000,但Image不会?

关于VS2010可能过于严格地应用代码分析规则CA2000的事实,有很多问题,但我似乎遇到了应该应用它的情况,但事实并非如此.

请考虑以下代码:

Image srcImage = Image.FromFile(source);
Bitmap newImage = new Bitmap(newWidth, newHeight);

using (Graphics gr = Graphics.FromImage(newImage))
{
    gr.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
}
newImage.Save(destination, ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)

现在,如果我在Visual Studio 2010中运行Code Analysis,它会抱怨newImage没有处理(很容易修复,把它放在另一个使用块),但是它没有抱怨srcImage(它也有Dispose()方法)我永远不会打电话).有谁知道为什么Code Analysis不会在这里抱怨?

c# dispose code-analysis visual-studio-2010

6
推荐指数
2
解决办法
274
查看次数

CA1305:指定文化时的详细程度

当存在需要的IFormatProvider过载但在代码中未使用此过载时,CA1305会引发.

例如,以下代码引发此警告:

string.Format("{0} - {1}", id, name);
Run Code Online (Sandbox Code Playgroud)

摆脱此警告的明显方法是指定要使用的文化:

string.Format(CultureInfo.InvariantCulture, "{0} - {1}", id, name);
Run Code Online (Sandbox Code Playgroud)

但是,我觉得这太冗长了.

有哪些替代品?

.net c# code-analysis localization

6
推荐指数
1
解决办法
1395
查看次数

FxCop自定义规则在VS2012中没有名称(但"官方"规则有名称)

我正在尝试将自定义FxCop(=代码分析)规则从Visual Studio 2010迁移到Visual Studio 2012.

到目前为止,它们工作正常,除了一件事:它们的名称在结果窗口中是空白的(View- > Other windows- > Code Analysis),只有CheckId和Resolution显示,而名称显示为Microsoft的规则:

该名称在自定义规则的CheckId右侧不可见,但在Microsoft规则中可见.

令人感到奇怪的是,这个名字是在规则集编辑器中可见:

该名称在规则集编辑器中的两个规则上都可见

我的规则出了什么问题?

细节

以下是两个规则在MSBuild输出中的显示方式(那里有一些可疑的东西,但我不明白为什么我有不同的消息):

6>c:\Users\Me\MySolution\MyProject\Program.cs(15): warning : CA1804 : Microsoft.Performance : 'Foo<T>.SomeMethod()' declares a variable, 'z', of type 'int', which is never used or is only assigned to. Use this variable or remove it.
6>MSBUILD : warning : CF1001 : CustomRules.ThreadSafety : The public Public Field "Tests.Program.Foo" must be preceded of readonly
Run Code Online (Sandbox Code Playgroud)

以下是我的规则的XML文件中的规则声明:

<?xml version="1.0" encoding="utf-8" ?>
<Rules …
Run Code Online (Sandbox Code Playgroud)

code-analysis fxcop visual-studio-2012

6
推荐指数
1
解决办法
1005
查看次数

阻止代码分析在Visual Studio 2012中重建项目和依赖项

将我们的解决方案升级到Visual Studio 2012后,我们希望利用新的代码分析功能.但是,运行时间太长,因为它在运行之前正在重建项目和依赖项目,即使代码没有更改也不需要重建.

如果不需要重建,有没有办法阻止它重建代码?

code-analysis visual-studio-2012

6
推荐指数
1
解决办法
1298
查看次数

如何在Visual Studio 2013中删除未使用的函数

Visual Studio 2013是否具有显示未使用功能的功能?

删除这些功能的最佳解决方案是什么?

.net code-analysis visual-studio visual-studio-2013

6
推荐指数
2
解决办法
6116
查看次数

静态分析可以检测内存泄漏吗?

很久以前我收到了ISTQB认证,我记得它有以下区别: -
静态分析:对源代码执行,检测无法访问的代码,未分配的值等. -
动态分析:可以检测内存泄漏等,需要执行(分析).

但是当我今天搜索时,我可以看到各种网站和提到静态分析的来源也能够检测到内存泄漏.

所以我想知道,静态分析真的有能力吗?如果是这样,那么就结果而言,动态分析之间有什么不同?

testing memory-leaks code-analysis static-analysis

6
推荐指数
2
解决办法
6169
查看次数

C# catch(FileNotFoundException) and CA1031

So this code triggers CA1031.

try
{
    // logic
}
catch (FileNotFoundException) // exception type
{
    // handle error
}
Run Code Online (Sandbox Code Playgroud)

While this one does not:

try
{
    // logic
}
catch (FileNotFoundException ex) // exception var
{
    // handle error
}
Run Code Online (Sandbox Code Playgroud)

Because the exception type is meaningful, I don't need the ex in the first example. But it's not a a general exception type. It's not IOException or Exception. So why does it still trigger the CA1031? …

c# code-analysis

6
推荐指数
1
解决办法
145
查看次数