본문 바로가기
개발언어/C#

[C#]'Microsoft.Office.Interop.Word.ApplicationClass'을(를) 포함할 수 없습니다.

by 창용이랑 2022. 9. 26.
728x90

방법1>------------------------------------------------------------------------------------------------------------------------

엑셀 출력 기능을 사용해야 해서 Microsoft Excel 12.0 Object Library 를 참조 추가하였다.

 

그리고 빌드를 하였는데 아래와 같은 오류가 발생하였다.

 

오류 22 Interop 형식 'Microsoft.Office.Interop.Excel.ApplicationClass'을(를) 포함할 수 없습니다. 적용 가능한 인터페이스를 대신 사용하십시오.

 

이런 오류가 발생하는 자세한 이유는 모르겠으나 다음과 같이 참조된 라이브러리의 속성값을 변경하면 해결이 된다.

 

1. 솔루션 탐색기에서 참조된 Microsoft.Office.Interop.Excel 을 선택한다.

 

 

2. 속성창에서 Interop 형식 포함 항목을 True → False로 변경한다.

 

출처: https://happytomorrow.net/208 [開發:티스토리]

 

 

 

방법2> ------------------------------------------------------------------------------------------------------------------------

방법1>의 Interrop 형식 포함이 true  항목이 비활성화 되있을경우에....

제어판에서 오피스를 [수정] 또는 재설치, 복구 등을 클릭하면 VS에서 활성화된것을 볼수있다.

참고 : https://smart-factory-lee-joon-ho.tistory.com/179

 

 

 

방법3> ------------------------------------------------------------------------------------------------------------------------

인터페이스 형식 오류

 

'Microsoft.Office.Interop.Word.ApplicationClass' 형식의 COM 개체를 인터페이스 형식 'Microsoft.Office.Interop.Word._Application'(으)로 캐스팅할 수 없습니다. 라이브러리가 등록되지 않았습니다. (예외가 발생한 HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)) 오류로 인해 IID가 '{00020970-0000-0000-C000-000000000046}'인 인터페이스의 COM 구성 요소에서 QueryInterface를 호출하지 못했으므로 이 작업을 수행할 수 없습니다.

 

오류의 원인

 

해당 오류는 2가지 버전의 오피스 버전을 설치해 사용하고 있는 경우 레지스트리 값 오류가 발생하게 됩니다.

 

오류 해결 방법

 

레지스트리 값에 문제가 없는지 확인하고 중복 버전을 삭제합니다.

삭제 후에도 문제가 발생할 경우 오피스 자체에 문의해보시기 바랍니다.

 

 

 

1. 시작(검색) 메뉴에서 regedit (레지스트리 편집기)를 실행해주세요.

    A.  레지스트리 편집기 검색창에 위의 오류인 "00020970-0000-0000-C000-000000000046"아래 경로를 입력 후 검색해주세요.

   - 찾기결과 기본값 데이터가 00020905-0000-0000-C000-000000000046인것을 확인할수있고

   - 오피스버전이 8.6인것을 확인할수 있습니다.

 

B.  위의 기본값 데이터를 토대로

      컴퓨터\HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}의 경로를 찾아갑니다.

 

컴퓨터\HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046} 을 보니

8.6과 8.7 두개의 폴더가 보이이는데  본인이 사용하고 있는 버전외의 폴더(데이터)를 삭제하시기 바랍니다.

저는 8.7을 삭제합니다.

 

삭제후

 

 

 

 

참고1 : http://totlelab.com/faq/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=11535014&t=board

 

참고2: http://www.mospass.kr/w_kexam/?uid=175&mod=document&category1=ketri&page_id=78