2014-05-13 11 views
2

Windows 저장소 앱에서 Winmd (Windows 런타임 구성 요소)를 사용하고 있습니다. 나는 winmd에 정의 된 유형의 인스턴스를하려하면, 다음과 같은 예외가 : Windows 저장소 앱의 TypeLoadException

System.TypeLoadException was unhandled by user code 
    HResult=-2146233054 
    Message=Requested Windows Runtime type 'SmartTech.BrokeredProxy.EnterpriseServer' is not registered. 
    Source=mscorlib 
    TypeName=SmartTech.BrokeredProxy.EnterpriseServer 
    InnerException: System.Runtime.InteropServices.COMException 
     HResult=-2147221164 
     Message=Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) 
     ErrorCode=-2147221164 
     InnerException: 

은 내가 필요한 모든 참조를 추가하고 나는 매니페스트 파일에서 적절한 변경했습니다. 내가 뭐 놓친 거 없니? 어떤 사람이 이것을 일으키는 지 알고 있습니까?

+0

이 발생합니다. 스토어 앱에는 사용하는 런타임 구성 요소가 모두 ** 포함되어야합니다. –

+0

마지막으로 이것을 해결할 수 있습니까? –

+0

@HansPassant OP가 [중개 런타임 구성 요소]를 사용하고있는 것으로 보입니다 (https://msdn.microsoft.com/en-us/windows/uwp/winrt-components/brokered-windows-runtime-components-for-side- loaded-windows-store-apps)에 'BrokeredProxy.EnterpriseServer'가 있습니다. 따라서 앱을 사이드로드해야합니다. – ZX9

답변

0

(비 winrt 앱의 경우)이 오류는 일반적으로 등록되지 않은 구성 요소를 나타냅니다. 즉 regsvr32 "path of the component"

하지만 승리 8 앱에 대한 는 확실하지 완전히 적용 할 수 있습니다.

다른 경우에는 비슷한 문제가 발생했습니다. 32 비트/모든 CPU 충돌이 원인입니다.

구성 요소가 32 비트 구성 요소 일 수 있으며 Visual Studio에서 '모든 CPU'설정으로 컴파일 중일 수 있습니다. 프로젝트 속성에서 '대상 CPU'를 x86으로 변경하고 문제가 발생하는지 확인하십시오. 당신이 당신의 프로그램을 컴파일하지만, 다른 파일과 함께 그것을 포장하는 것을 잊지하는 구성 요소의 .winmd 파일을 사용할 때

Project -> Properties -> Build tab -> Platform Target -> Any CPU to x86

+0

또한 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하여 솔루션의 각 프로젝트에 대한 특정 대상 CPU를 확인할 수 있습니다. -> ** 속성 ** -> ** 구성 속성 ** -> ** 구성 ** – ZX9