FxCop выдает исключение в командной строке, но не в графическом интерфейсе? - PullRequest
1 голос
/ 15 сентября 2011

У меня есть проект FxCop 10.0, который нормально работает через графический интерфейс FxCop, но когда я запускаю его через приложение командной строки FxCopCmd (которое я хочу использовать как часть нашего процесса автоматической сборки), он генерирует следующее исключение - очевидно, покапытаюсь загрузить сборки.

  <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, поэтому у кого-нибудь есть идеи, что может быть причиной этого?

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Это произошло из-за попытки запустить FxCop 1.36 для файла 10.0. Наш код модульного теста пытался найти FxCop в двух разных папках, и я обновил только одну из них: (

1 голос
/ 19 сентября 2011

Используете ли вы один и тот же файл проекта .fxcop для пользовательского интерфейса и командной строки?Если нет, возможно, вы отключили многопоточную загрузку в настройках пользовательского интерфейса FxCop?

Если вы не уверены, лучше всего попытаться использовать файл проекта .fxcop с отключенной многопоточной загрузкой для командной строки.бежать.

...