2011-09-15 16 views
1

私はFxCop GUIを通してうまく動作するFxCop 10.0プロジェクトを持っていますが、FxCopCmdコマンドラインアプリ(自動ビルドプロセスの一部として使用したい)を実行すると、次の例外が生成されます。アセンブリをロードする。FxCopはコマンドラインで例外をスローしますが、GUIでは例外をスローしませんか?

<Exception Keyword="CA0001" Kind="Engine"> 
    <Type>System.InvalidOperationException</Type> 
    <ExceptionMessage>Collection was modified; enumeration operation may not execute </ExceptionMessage> 
    <StackTrace> at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 
    at System.Collections.Generic.List`1.Enumerator.MoveNextRare() 
    at System.Collections.Generic.List`1.Enumerator.MoveNext() 
    at Microsoft.FxCop.Sdk.WeakAssemblyReference.FindMatchingReference(WeakAssemblyReference faRef, AssemblyReferenceCollection references, Hashtable cache) 
    at Microsoft.FxCop.Sdk.WeakAssemblyReference.Initialize() 
    at Microsoft.FxCop.Sdk.FrameworkAssemblies.GetFrameworkAssemblyReference(WeakAssemblyReference&amp; assemblyRef, String assemblyName) 
    at Microsoft.FxCop.Sdk.FrameworkAssemblies.get_SystemCore() 
    at Microsoft.FxCop.Sdk.FrameworkTypes.get_DynamicAttribute() 
    at Microsoft.FxCop.Sdk.INodeWrappers.CCIParameterWrapper.get_DynamicTypes() 
    at Microsoft.FxCop.Sdk.INodeWrappers.CCIParameterWrapper.get_Type() 
    at Microsoft.FxCop.Sdk.NameProviders.NameProvider.WriteCommaSeparatedParameters(INodeCollection`1 parameters) 
    at Microsoft.FxCop.Sdk.NameProviders.NameProvider.WriteMethodParameters(IMethodNode method) 
    at Microsoft.FxCop.Sdk.NameProviders.NameProvider.WriteMethod(IMethodNode method) 
    at Microsoft.FxCop.Sdk.NameProviders.CodeWriter.WriteCore(INode node) 
    at Microsoft.FxCop.Sdk.NameProviders.NameProvider.WriteCore(INode node) 
    at Microsoft.FxCop.Sdk.NameProviders.NameProvider.GetName(INode node) 
    at Microsoft.FxCop.Engines.Introspection.Persistence.GetName(Node node, NameStyle style) 
    at Microsoft.FxCop.Engines.Introspection.BaseVisitor.FindTargetMember(Member member, TargetMemberDictionary targets) 
    at Microsoft.FxCop.Engines.Introspection.LoadVisitor.FindTargetMember(Member member, TargetMemberDictionary targets) 
    at Microsoft.FxCop.Engines.Introspection.BaseVisitor.VisitMembers(MemberCollection members, TargetMemberDictionary targets, Boolean visitNestedTypes) 
    at Microsoft.FxCop.Engines.Introspection.BaseVisitor.VisitType(TypeNode type, TargetType target) 
    at Microsoft.FxCop.Engines.Introspection.LoadVisitor.VisitType(TypeNode type, TargetType target) 
    at Microsoft.FxCop.Engines.Introspection.BaseVisitor.VisitTypes(TypeNodeCollection types, TargetNamespaceDictionary targets) 
    at Microsoft.FxCop.Engines.Introspection.LoadVisitor.VisitModule(ModuleNode module, TargetModule target) 
    at Microsoft.FxCop.Engines.Introspection.BaseVisitor.VisitAssembly(AssemblyNode assembly, TargetFile target) 
    at Microsoft.FxCop.Engines.Introspection.LoadVisitor.VisitAssembly(AssemblyNode assembly, TargetFile target) 
    at Microsoft.FxCop.Engines.Introspection.LoadVisitor.Load(TargetFile target, Boolean buildTree, Boolean queueItems, AssemblyNode loadedAssembly) 
    at Microsoft.FxCop.Engines.Introspection.LoadVisitor.LoadAssemblies(Queue queue, ExceptionCollection exceptions)</StackTrace> 
    </Exception> 

私はGoogleに何かを見つけることができないので、誰かがこれを引き起こしている可能性があるアイデアはありますか?

答えて

1

これは10.0ファイルでFxCop 1.36を実行しようとしたためです。私たちのユニットテストコードは2つの異なるフォルダでFxCopを見つけようとしましたが、そのうちの1つだけを更新しました:(

1

UIとコマンドラインの実行に同じ.fxcopプロジェクトファイルを使用していますか?そうでない場合は、FxCopのUI設定でマルチスレッド読み込みを無効にしている可能性がありますか?

わからない場合は、.fxcopプロジェクトファイルを使用して、コマンドライン実行でマルチスレッドロードを無効にしてください。

+0

私は両方とも同じプロジェクトファイルを使用しています。明日のオフィス。 –

+0

私はそれを試みましたが、残念ながらそれは修正されませんでしたが、正しい方向に私を導いてくれました! –

関連する問題