2016-07-18 34 views
2

미안은 COM.Scanner 프로젝트를 실행하려고하지만 후속 예외가 발생합니다 : Interop.CoreScanner처럼.NET의 0x80040154 (REGDB_E_CLASSNOTREG) : CLSID로 구성 요소의 COM 클래스 팩터 리를 검색 {XXXX}는

Retrieving the COM class factory for component with CLSID {9F8D4F16-0F61-4A38-98B3-1F6F80F11C87} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

는 .NET이다 어셈블리 난 regasm COM 개체를 등록 할 수 있지만 오류가 계속 발생합니다.

나는이 좋은 post을 읽게되었지만 아무도 문제를 해결하지 못했습니다.

Corflags의 정보 :

Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.6.81.0 
Copyright (c) Microsoft Corporation. All rights reserved. 

Version : v2.0.50727 
CLR Header: 2.5 
PE  : PE32 
CorFlags : 0x1 
ILONLY : 1 
32BITREQ : 0 
32BITPREF : 0 
Signed : 0 

regasm/regfile 옵션으로 생성 된 .reg 파일은 다음과 같습니다

REGEDIT4 

[HKEY_CLASSES_ROOT\CLSID\{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}\InprocServer32] 
"Class"="CoreScanner.CCoreScannerClass" 
"Assembly"="Interop.CoreScanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" 
"RuntimeVersion"="v2.0.50727" 
"CodeBase"="file:///D:/Github/miscelaneas/COM.Scanner/libs/Interop.CoreScanner.dll" 

[HKEY_CLASSES_ROOT\CLSID\{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}\InprocServer32\1.0.0.0] 
"Class"="CoreScanner.CCoreScannerClass" 
"Assembly"="Interop.CoreScanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" 
"RuntimeVersion"="v2.0.50727" 
"CodeBase"="file:///D:/Github/miscelaneas/COM.Scanner/libs/Interop.CoreScanner.dll" 

환경 :

  • OS : 윈도우 10 (64)
  • 비주얼 스튜디오 2015

질문

  • 이 레지스트리에 누락 된 항목이 있음을 냄새,하지만 난 알고하지는.
  • 만약 내가 올바른 방법으로 regasm 누락 된 레지스트리 항목을 생성 할 수없는 이유는 무엇입니까?
+3

결코, * 결코 *, ** 결코 ** interop 라이브러리를 등록하십시오. Regsvr32.exe 또는 (선호) 공급 업체의 설치 관리자를 사용하여 네이티브 COM 구성 요소를 대신 등록해야합니다. 해당 설치 프로그램이 없으면 전화를 사용하여 Zebra에 전화해야합니다. Regasm.exe를 사용하여 설치를 파괴했다면 다시 설치해야합니다. –

+0

클라이언트의 요구 사항에 SDK를 설치하고 싶지 않은 경우 기본 COM 구성 요소가 필요하며 Regsvr32.exe에 등록해야합니까? – Joseph

+0

다시 전화를 사용하여 공급 업체와 대화하고 구체적인 설치 조언을 요청하십시오. 자신의 설치 프로그램과 통합 할 수있는 병합 모듈을 요청하는 것이 가장 좋습니다. –

답변

2

seems 누락 된 구성 요소는 Motorolas EMDK SDK과 함께 설치됩니다. SDK를 설치하면 문제가 해결됩니다.

Interop 어셈블리를 등록해도 더 이상 걸리지 않습니다. interop 어셈블리는 정적 구성 및 초기 바인딩을 사용하여 C# 코드를 컴파일 할 수 있도록 COM 구성 요소의 형식 정의가 포함 된 라이브러리 일뿐입니다. 등록해야 할 실제 항목은 기본 COM 구성 요소입니다. 등록하려면 regasm.exe 만 사용하십시오. COM 구성 요소가 .NET으로 작성된 경우 실제 COM 구성 요소 인 경우. 그렇지 않으면 클래식 regsvr32.exe을 사용해야합니다 (또는 구성 요소 공급 업체의 설치 프로그램을 사용하십시오).

+1

그 링크로 해결되었습니다. Scanner SDK [here] (https://www.zebra.com/us/en/products/software/scanning-systems/scanner-drivers-and-utilities/scanner-sdk-for-windows.html)도 설치하십시오. 문제. – Joseph