본문 바로가기

Developer

[C# Windows Form] 80040154 오류로 인해 CLSID가 {0}인 구성 요소의 COM 클래스 팩터리를 검색하지 못했습니다.

 

Windows Forms으로 Sharepoint 관련 툴을 만들던 중 아래와 같은 에러가 발생하였습니다.

 

한글

System.Runtime.InteropServices.COMException (0x80040154): 80040154 오류로 인해 CLSID가 {BDEADF26-C265-11D0-BCED-00A0C90AB50F}인 구성 요소의 COM 클래스 팩터리를 검색하지 못했습니다.

 

영문

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {9DB232DC-50D6-4AAF-BA35-E510E16B2056} failed due to the following error: 80040154.

 

System.Runtime.InteropServices.COMException (0x80040154): 80040154 오류로 인해 CLSID가 {BDEADF26-C265-11D0-BCED-00A0C90AB50F}인 구성 요소의 COM 클래스 팩터리를 검색하지 못했습니다.
   위치: Microsoft.SharePoint.Library.SPRequest..ctor()
   위치: Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(SPSite site, String name, Boolean bNotGlobalAdminCode, String strUrl, Boolean bNotAddToContext, Byte[] UserToken, String userName, Boolean bIgnoreTokenTimeout, Boolean bAsAnonymous)
   위치: Microsoft.SharePoint.SPRequestManager.GetContextRequest(SPRequestAuthenticationMode authenticationMode)
   위치: Microsoft.SharePoint.Administration.SPFarm.get_RequestAny()
   위치: Microsoft.SharePoint.SPSecurity.GetCurrentUserTokenNoApplicationPrincipalDelegated()
   위치: Microsoft.SharePoint.SPSecurity.GetCurrentUserToken()
   위치: Microsoft.SharePoint.SPSecurity.EnsureOriginatingUserToken()
   위치: Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)
   위치: Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)
   위치: StandardBoardItemAddTool.Form1.get_SPAdmin() 파일 D:\Temp\Code\Doosan.SPPerformanceTestTool\StandardBoardItemAddTool\Form1.cs:줄 41
   위치: StandardBoardItemAddTool.Form1.StandardBoardAddItem(String strSiteUrl, String strListName) 파일 D:\Temp\Code\Doosan.SPPerformanceTestTool\StandardBoardItemAddTool\Form1.cs:줄 72
   위치: StandardBoardItemAddTool.Form1.btnStart_Click(Object sender, EventArgs e) 파일 D:\Temp\Code\Doosan.SPPerformanceTestTool\StandardBoardItemAddTool\Form1.cs:줄 141

 

해당 에러의 원인은 아래와 같습니다.

64bit COM을 사용해야 하는데 플랫폼 대상이 32bit로 지정되어 있어서 나타나는 에러입니다.

 

변경은 아래와 같이 하시면 됩니다.

 

해당 프로젝트에 속성 –> 빌드 –> 플랫폼 대상을 x64로 변경하면 됩니다.

 

이상입니다.

 

감사합니다.