时间:2010-07-24 23:15:03

标签: .net visual-studio-2010 code-analysis fxcop

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

我遇到了类似的问题:

<Exceptions>
  <Exception Keyword="CA0001" Kind="Engine">
   <Type>System.Collections.Generic.KeyNotFoundException</Type>
   <ExceptionMessage>The given key was not present in the dictionary.</ExceptionMessage>
   <StackTrace>   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Microsoft.FxCop.Engines.Phoenix.PreScanPass.AnonymousMethodQueue.ReportDeclaringMethodFound(FunctionSymbol anonymousMethod)
   at Microsoft.FxCop.Engines.Phoenix.PreScanPass.AnonymousMethodPhase.ExamineInstructionForAnonymousMethodDeclaration(Instruction instruction)
   at Microsoft.FxCop.Engines.Phoenix.PreScanPass.AnonymousMethodPhase.Execute(Unit unit)
   at Phx.Phases.PhaseList.DoPhaseList(Unit unit)
   at Microsoft.FxCop.Engines.Phoenix.PreScanPass.Execute(ModuleUnit moduleUnit)
   at Phx.Passes.PassList.DoPassList(ModuleUnit moduleUnit)
   at Microsoft.FxCop.Engines.Phoenix.PhoenixAnalysisEngine.AnalyzeInternal()
   at Microsoft.FxCop.Engines.Phoenix.PhoenixAnalysisEngine.Analyze()
   at Microsoft.FxCop.Common.EngineManager.Analyze(Project project, Boolean verboseOutput)    </StackTrace>
</Exception>

我做了一些调查,发现只有从Visual Studio 2010运行FxCop才会出现问题。由于它在VS2012中工作正常,很可能FxCop中的错误已得到修复。

在逐个方法注释掉我的更改后,我认为它是由同一个类中的2个匿名方法(只有一个工作正常)引起的。一旦我将它们转换为“命名”方法,错误就消失了。

希望有所帮助。