[c#] COM 구성 요소 액세스 오류


Answers

최신 Office 버전으로 업그레이드 한 후에도 동일한 예외가 발생하기 시작했습니다. @Victor가 설명한 것과 유사한 방식으로 레지스트리를 정리하는 것을 포함하여 많은 수정 제안을 시도했습니다.

궁극적으로 도움이 된 것은 (비록 요인의 조합이었을지라도) 설치를 '수리하는'것이 었습니다.

프로그램 및 기능 → 최신 Office 버전 → 복구 .

Question

Microsoft Office Word 용 추가 기능을 만들었습니다. Word가 관리자로 실행될 때 추가 기능을 사용하는 데 문제가 없지만 관리자로 실행되지 않는 경우에는 리본 요소에 액세스하는 두 가지 일반적인 예외가 있습니다.

첫 번째 예외 :

Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Core.IRibbonUI'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000C03A7-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Core.IRibbonUI.InvalidateControl(String ControlID)

이 오류는 컨트롤이 다음 코드에 의해 무효화 될 때 발생합니다.

ribbon.InvalidateControl("control-id");

그리고 두 번째 예외 :

Unable to cast COM object of type 'Microsoft.Office.Interop.Word.ApplicationClass' to interface type 'Microsoft.Office.Interop.Word._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00020970-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Interop.Word.ApplicationClass.get_Selection()

이 오류는 다음 코드의 마지막 줄에서 발생합니다.

object wdStory = Word.WdUnits.wdStory;
object wdMove = Word.WdMovementType.wdMove;
WrdApp.Selection.EndKey(ref wdStory, ref wdMove)

이 문제를 어떻게 해결할 수 있습니까?




Office 2010 / MS 워드 / .NET 프로그래밍 지원을 설치하십시오.




VS2015와 Office 2013에서 같은 문제가 발생했습니다. 플랫폼 대상을 x64로 변경하면 저에게 효과적이었습니다.




Links