Visual Studio 2012 Express - ImportCardinalityMismatchException
이전에 설치해 둔 Visual Studio Express for Desktop 버전으로 윈폼 프로젝트를 로드한 후, 솔루션 폴더에서 프로젝트 항목을 펼치면 여지없이 비정상 종료가 되는 현상이 발생했습니다. 이벤트 로그에 보면 다음과 같은 항목이 보이는데요.
오류 버킷 -562875298, 유형 5
이벤트 이름: CLR20r3
응답: 사용할 수 없음
Cab ID: 0
문제 서명:
P1: wdexpress.exe
P2: 11.0.51106.1
P3: 5098b5f8
P4: System.ComponentModel.Composition
P5: 4.0.30319.18053
P6: 51906d58
P7: 16c
P8: 4f
P9: JT1X0453KJCJF34Q1KKIEV0ZVYPHQ53A
P10:
응용 프로그램: WDExpress.exe
Framework 버전: v4.0.30319
설명: 처리되지 않은 예외로 인해 프로세스가 종료되었습니다.
예외 정보:System.ComponentModel.Composition.ImportCardinalityMismatchException
스택:
위치: System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition)
위치: System.ComponentModel.Composition.Hosting.ExportProvider.GetExportsCore(System.Type, System.Type, System.String, System.ComponentModel.Composition.Primitives.ImportCardinality)
위치: System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedValueCore[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.String, System.ComponentModel.Composition.Primitives.ImportCardinality)
위치: System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedValue[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.String)
위치: System.ComponentModel.Composition.Hosting.ExportProvider.GetExportedValue[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]()
위치: Microsoft.VisualStudio.ComponentModelHost.ComponentModel.GetService[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]()
위치: Microsoft.VisualStudio.Progression.CommonIconHelper.Initialize(System.IServiceProvider)
위치: Microsoft.VisualStudio.Progression.LanguageService.CSharp.IconHelper.Initialize(System.IServiceProvider)
위치: Microsoft.VisualStudio.Progression.LanguageService.CSharp.CSLanSvcProvider.InitializeProvider()
위치: Microsoft.VisualStudio.Progression.LanguageService.CSharp.CSLanSvcProvider.EnsureInitialized()
위치: System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
위치: MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
위치: System.Windows.Threading.DispatcherOperation.InvokeImpl()
위치: System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
위치: System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
위치: System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
위치: System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
위치: System.Windows.Threading.DispatcherOperation.Invoke()
위치: System.Windows.Threading.Dispatcher.ProcessQueue()
위치: System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
위치: MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
위치: MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
위치: System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
위치: MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
위치: System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
위치: MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
또는, "디자인" 화면을 갖는 cs 파일을 열려고 하면 다음과 같은 식의 오류가 발생하면서 열리지 않기도 합니다.
제약 조건과 일치하는 올바른 내보내기를 찾을 수 없습니다.
ContractName
Microsoft.VisualStudio.Utilities.IContentTypeRegistryService
RequiredTypeIdentity
Microsoft.VisualStudio.Utilities.IContentTypeRegistryService
한 가지 의심되는 점이 있다면 최근에 윈도우 업데이트가 되었다는 것입니다. 흠... 그에 반해 VM에 설치되어 있던 Visual Studio는 업데이트가 귀찮아서 "Update 1"만 적용해 놓은 상태였는데요. ^^ 혹시나 싶어 "Update 3"으로 적용하니 문제가 사라졌습니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]