2013-07-25 12 views
6

JavaScript 및 XAML Windows Store 응용 프로그램에서 사용할 WinRT 구성 요소 (.winmd)를 만들었습니다. JavaScript 클라이언트에서 느슨한 .winmd 파일 출력을 참조 할 때 경고 메시지가 표시됩니다.배포 용 Windows 런타임 구성 요소를 패키지하는 방법?

Microsoft.AppXPackage.Targets (808,9) : 경고 APPX1707 : .winmd 파일에 대한 구현 파일이 제공되지 않았습니다. 'myRuntimeComponent.winmd'. 응용 프로그램 매니페스트에 등록 정보를 생성하려면 프로젝트 파일의 .winmd 참조 항목에 '구현'메타 데이터를 지정합니다.

이 오류 또는 구현 메타 데이터를 포함하는 방법에 대한 문서를 찾을 수 없습니다.

자바 스크립트 클라이언트를 실행하는 경우,이 예외가 .winmd에서 내 보낸 클래스 메소드가 호출 될 때 발생합니다 :

0x80040154 - 자바 스크립트 런타임 오류 : 클래스 I가 참조하고

주를 등록하지 .winmd를 빌드하는 Visual Studio 프로젝트를 참조하는 대신 클라이언트 응용 프로그램 프로젝트의 느슨한 .winmd 파일 내 용도는 .winmd 구성 요소의 전체 소스가 아닌 .winmd 출력을 배포하는 것입니다. 소스 배포는 옵션이 아닙니다.

Windows 런타임 구성 요소가 으로 프로젝트 참조으로 참조되면 JavaScript 클라이언트가 올바르게 빌드되고 실행된다는 점에 유의하십시오. C# XAML 클라이언트는 프로젝트 참조 또는 느슨한 .winmd에 대한 참조와 함께 올바르게 실행됩니다.

느슨한 .winmd가 참조 될 때 클라이언트 응용 프로그램 빌드에서 일부 등록 정보가 생성되지 않는 것처럼 보입니다.

JavaScript와 관리되는 클라이언트가 모두 사용할 수있는 느슨한 Windows 런타임 구성 요소를 빌드하고 배포하려면 어떻게해야합니까?

+0

당신은 너무 구성 요소에서 .DLL이 필요합니다 VS에서 확장 SDK를 소비하기 쉬운으로 구성 요소를 포장하는 방법에 대한 아래 링크를 참조하십시오. 구성 요소가 컴파일되면 .winmd 파일과 .dll 파일을 생성해야합니다. – kiewic

+0

불행히도 그런 경우는 없습니다. dll이 생성되지 않습니다. 출력 파일에는 .winmd, .pri 및 .pdb가 포함됩니다. –

+0

안녕하세요 제시, 문제 해결 방법을 찾았습니까? –

답변

5

C# 또는 VB로 작성된 WinRT 구성 요소는 메타 데이터와 구현을 모두 포함하는 .winmd를 생성합니다. C++로 작성된 구성 요소는 별도의 .winmd 및 .dll 파일을 제공하며 DLL은 구성 요소를 등록하는 세부 정보를 포함합니다.

<Reference Include="component"> 
    <HintPath>component.winmd</HintPath> 
    <IsWinMDFile>true</IsWinMDFile> 
    <Implementation>component.dll</Implementation> 
</Reference> 
+0

이것은 매력처럼 작동했습니다! 고맙습니다! – Zak

1

이 또는 당신이 확장 SDK를 조사 할 수 있습니다 : 경고는 표시로

은 분명히, 당신은 DLL을 가리 키도록 다음과 같은 뭔가 프로젝트 파일을 편집해야합니다.

http://msdn.microsoft.com/en-us/library/jj127119.aspx

+0

이것은 여러 아키텍처에 대한 C++/CX 라이브러리로 구성된 Windows 런타임 구성 요소를 패키지하는 유일한 솔루션 인 것으로 보입니다. 그렇지 않으면 Visual Studio가 모바일 장치에 DLL을 복사하거나 무시하거나 제대로 사용하지 못하게됩니다. – Mike