答案 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个匿名方法(只有一个工作正常)引起的。一旦我将它们转换为“命名”方法,错误就消失了。
希望有所帮助。