C#代码分析-VS 2005

C#代码分析-VS 2005,c#,.net,.net-2.0,C#,.net,.net 2.0,我有一个C#用户控制项目,它会导致间歇性的.NET运行时错误,这是一个一般性错误,我想知道是否有任何代码分析工具可以指向我的.sln文件,它可以告诉我是什么原因导致了我的错误有没有工具可以告诉你你做错了什么? 不,这是编程乐趣的一部分。计算机程序不可能查看一段代码并确定所有错误是什么 有没有工具可以告诉我我的程序出了什么问题? 是的,这些被称为静态分析工具。FxCop是Microsoft提供的一个免费工具,它将在您的代码基础上进行大量的静态分析 我不能100%确定独立版本是否可以指向.sln文件

我有一个C#用户控制项目,它会导致间歇性的.NET运行时错误,这是一个一般性错误,我想知道是否有任何代码分析工具可以指向我的.sln文件,它可以告诉我是什么原因导致了我的错误

有没有工具可以告诉你你做错了什么?

不,这是编程乐趣的一部分。计算机程序不可能查看一段代码并确定所有错误是什么

有没有工具可以告诉我我的程序出了什么问题?

是的,这些被称为静态分析工具。FxCop是Microsoft提供的一个免费工具,它将在您的代码基础上进行大量的静态分析

我不能100%确定独立版本是否可以指向.sln文件。但它可以很容易地指向解决方案的构建输出


除了JaredPar提到的FXCop之外,您还需要一个静态代码分析工具


我最近发现的另一种方法是进行白盒单元测试,它提供了一种查找类似问题的有用方法。因此,当您运行PEX explorations时,它将尝试通过自动生成的单元测试在您的方法中发送大量值,这可能有助于发现由奇怪/意外数据引起的奇怪问题。

但我不会将静态分析工具与调试器混淆,我相信您在这里需要的是调试。换句话说,FxCop可能会告诉您一切都很好,但您仍然可以得到一个运行时异常

运行时中的一些错误很难通过查看代码来发现(例如,多线程的竞争条件)。因此,没有“代码分析工具”可以通过简单地分析代码来避免运行时异常

有关调试的一些示例,请查看此链接:。您可能需要使用调试器对代码进行单步调试,或者将一些数据跟踪到日志文件,然后试着找出错误的确切位置。

就工具而言,它非常适合进行代码分析,而且它是免费的,但是其他一些东西可以用来进行动态代码分析,它可以促进良好的开发实践

但是这些可能是错误的工作工具,可能无法解决您的问题,代码可能在语法上是正确的,但有一个逻辑错误导致了您的问题它就像一个拼写检查器,我所有的单词拼写都是正确的“Evert bird is Continal”的意思与“每个单词都是正确的”完全不同

您可能需要在调试器中花费一些时间,或者使用某种形式的跟踪工具,例如,还有一些类似的工具。

完全集成在VS2005、VS2008和VS2010中。因此,您可以简单地将NDepend指向您希望分析的sln,NDepend将为您构建完整的报告


只需点击几下,您就可以看到哪些类型取决于哪些类型,等等。这显然不会神奇地解决您所有的问题,但这可能会让您走上正确的道路。

我不认为这是他所说的wants@Sergej是的,我有点误读了这个问题。我更新了我的答案,使之更符合这个问题。这可能应该被标记为“静态分析工具”