6

나는 이러한 플랫폼을 대상으로 (내가 이름을 제거)하는 PCL입니다 비주얼 스튜디오 2012의 C# 프로젝트를 가지고 :PCL 프로젝트의 DLL이 x86 어셈블리 인 이유는 무엇입니까?

enter image description here

난에 성공한 빌드에서 DLL을 추가하려고 VS2013의 Silverlight 5 프로젝트에서 경고 메시지가 표시되고 실제로 추가되지 않는 것 같습니다.

경고 1 "MSIL"빌드중인 프로젝트의 프로세서 아키텍처와 프로세서 아키텍처간에 불일치가있었습니다 "[이름]", "x86"참조. 이 불일치로 인해 런타임 오류가 발생할 수 있습니다. 프로젝트와 참조간에 프로세서 아키텍처를 정렬하거나 프로젝트의 대상 프로세서 아키텍처와 일치하는 프로세서 아키텍처로 참조에 종속되도록 Configuration Manager를 통해 프로젝트의 대상 프로세서 아키텍처를 변경하는 것을 고려하십시오.

enter image description here

는 왜 PCL은 86으로 보여주는 것?

+4

경고가 작습니다. 오류 메시지를 질문 본문 –

+2

eddie_cat에 복사/붙여 넣기하십시오. 이미지 및 이미지보기를 마우스 오른쪽 단추로 클릭하십시오 (적어도 Firefox에서는). – Jake

+1

귀하의 구성 및 플랫폼이 N/A가 아닌 것이 정상이라고 생각하지 않습니다. AnyCPU 설정으로 새 구성을 작성하십시오. –

답변

0

여러 대상에 대한 PCL 프로젝트가 있고 다른 프로젝트에서 출력 .dll을 referene하려는 경우 올바른 컴파일로 올바른 .dll을 선택해야합니다. 예를 들어

:

  • 당신은 WP 8 SL에 대한 PCL을하는 비즈니스 프로젝트 5.
  • 는 위의 비즈니스 프로젝트
    • SL의 PROJ에서 DLL을 참조하는이 개 프로젝트가있다
    • WP 8 PROJ

WindowsPhone proj에서 참조를 추가 할 때 ARM 용으로 컴파일 된 것을 선택해야합니다. [에뮬레이터에서 실행하려면 x86 버전을 선택해야합니다 (에뮬레이터가 ARM이 아니기 때문에] 참고). x86 버전을 추가하고 구성 관리자에서이를 ARM으로 설정하면 Visual Studio에서 ARM 코드를 실행하고 참조 된 x86 코드가 있기 때문에 동일한 오류로 경고합니다.

추가 한 .dll이 구성 관리자와 일치하는지 확인하십시오. "다중 플랫폼"대 "모든 CPU"대신 원하는 아키텍처에 맞게 변경하십시오.