티스토리 뷰

반응형

소스트리 아이콘을 눌러도 아예 실행되지 않는다.

소스트리 스플레시 화면은 나타나지만, 그 다음 반응이 없다..

 

본인은 윈도우를 사용중인데 생각해보니 윈도우 업데이트 이후부터 소스트리 실행이 안 되는것 같다.

재설치해도 실행이 되지 않는다.

내 짧은 식견으로는 이런 문제는 뭔가 기존 설정 파일이 꼬이거나 필요한 파일이 없거나 그랬던 것 같다..

 

아니나 다를까 소스트리 로그 파일에 오류가 엄청나게 떠있는걸 발견했다.

 

  •  sourcetree.log
ERROR [2023-06-16 21:13:28,837] [1] [Sourcetree.Composition.VSMef.Net48.VSMefCompositionManager] [Log] - Unable to load MEF components
System.InvalidOperationException: 시퀀스에 요소가 없습니다.
   위치: System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
   위치: Microsoft.VisualStudio.Composition.PartDiscovery.GetElementTypeFromMany(Type type)
   위치: Microsoft.VisualStudio.Composition.RuntimeComposition.RuntimeImport.get_ImportingSiteTypeWithoutCollection()
   위치: Microsoft.VisualStudio.Composition.RuntimeComposition.RuntimeImport.get_IsLazy()
   위치: Microsoft.VisualStudio.Composition.RuntimeComposition.RuntimeImport.get_LazyFactory()
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.GetValueForImportSite(RuntimePartLifecycleTracker importingPartTracker, RuntimeImport import)
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.SatisfyImports()
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.SatisfyImmediateImports()
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState)
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState)
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose()
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.<>c__DisplayClass15_0.<GetExportedValueHelper>b__0()
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.GetValueForImportElement(RuntimePartLifecycleTracker importingPartTracker, RuntimeImport import, RuntimeExport export, Func`3 lazyFactory)
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.GetValueForImportSite(RuntimePartLifecycleTracker importingPartTracker, RuntimeImport import)
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.<CreateValue>b__10_0(RuntimeImport import)
   위치: System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   위치: System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   위치: System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue()
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create()
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState)
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState)
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose()
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.<>c__DisplayClass15_0.<GetExportedValueHelper>b__0()
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.GetValueForImportElement(RuntimePartLifecycleTracker importingPartTracker, RuntimeImport import, RuntimeExport export, Func`3 lazyFactory)
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.GetValueForImportSite(RuntimePartLifecycleTracker importingPartTracker, RuntimeImport import)
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.<CreateValue>b__10_0(RuntimeImport import)
   위치: System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   위치: System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   위치: System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   위치: Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue()
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create()
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState)
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState)
   위치: Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose()
   위치: System.Lazy`1.CreateValue()
   위치: System.Lazy`1.LazyInitValue()
   위치: Microsoft.VisualStudio.Composition.NetFxAdapters.MefV1ExportProvider.<>c__DisplayClass12_0.<UnwrapExport>b__1()
   위치: System.ComponentModel.Composition.Primitives.Export.get_Value()
   위치: System.ComponentModel.Composition.ReflectionModel.ImportingItem.Cast(Type type, Export export)
   위치: System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.SetImport(ImportingItem item, Export[] exports)
   위치: System.ComponentModel.Composition.Hosting.ImportEngine.PartManager.TrySetImport(ImportDefinition import, Export[] exports)
   위치: System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImportSubset(PartManager partManager, IEnumerable`1 imports, AtomicComposition atomicComposition)
   위치: System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImportsStateMachine(PartManager partManager, ComposablePart part)
   위치: System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImports(PartManager partManager, ComposablePart part, Boolean shouldTrackImports)
   위치: System.ComponentModel.Composition.Hosting.ImportEngine.SatisfyImportsOnce(ComposablePart part)
   위치: System.ComponentModel.Composition.Hosting.CompositionContainer.SatisfyImportsOnce(ComposablePart part)
   위치: System.ComponentModel.Composition.AttributedModelServices.SatisfyImportsOnce(ICompositionService compositionService, Object attributedPart)
   위치: Sourcetree.Composition.VSMef.Net48.VSMefCompositionManager.<Compose>d__5.MoveNext()

 

이게 다 뭐람..

 


해결방법

아래 경로로 들어간다.

C:\Users\{$사용자}\AppData\Local\Atlassian\SourceTree.exe_Url_4ir5kstrwxmih14qvtxzf3dqvbfexoj2\3.1.2.3027
  • C:\Users\{$사용자}\AppData\Local\Atlassian\SourceTree.exe_Url_4ir5kstrwxmih14qvtxzf3dqvbfexoj2\3.1.2.3027

 

아마 파일 이름이나 버전은 다를 것이다.

 

대충 아래와 같은 형식의 폴더가 있으면 된다.

SourceTree.exe_Url_{$어쩌고저쩌고 암호화}\{$소스트리 버전}

 

만약 위와 같은 폴더가 여러개 존재한다면 {$소스트리 버전}이 가장 최신인 것을 고르면 된다.

 

그러면 해당 경로에 아래와 같은 캐시 파일과 설정 파일들이 있을 것이다.

 

그 중에서 Composition.cache 파일을 삭제해준뒤 소스트리를 다시 실행하자.

 

아마 나의 경우에는 사용하고 있는 소스트리 캐시 파일이 윈도우 업데이트로 인해서 손상된 것 같다.

캐시 파일을 삭제하고 소스트리를 재실행하면 Composition.cache 파일이 새로 생긴다.

그러면 새로운 캐시 정보를 업데이트하기 때문에 문제가 해결될 것이다.

 

반응형
댓글
공지사항