MSDN Library
콘텐츠의 테이블 축소
콘텐츠의 테이블 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

앱 프로젝트를 Windows Phone 8로 업그레이드하는 방법

2014-06-18

기존 Windows Phone 앱 프로젝트의 대상을 Windows Phone OS 7.1 에서 Windows Phone 8 로 손쉽게 업그레이드할 수 있습니다.

이 항목에는 다음 단원이 포함되어 있습니다.

 

프로젝트를 업그레이드하기 전에 프로젝트 백업 복사본을 만드세요. 이 작업은 Windows Phone 8 와 Windows Phone OS 7.1 을 모두 앱의 대상으로 지정하려는 경우에 특히 중요합니다. 업그레이드 프로세스에서는 프로젝트 복사본이 만들어지지 않고, 프로젝트가 적절히 업그레이드됩니다. 프로젝트를 업그레이드한 후 나중에 다시 Windows Phone OS 7.1 로 변환할 수 없습니다.

프로젝트 파일 및 앱 매니페스트 파일(WMAppManifest.xml)이 읽기 전용으로 표시되지 않는지 확인합니다. 업그레이드 프로세스에는 이러한 파일에 대한 쓰기 권한이 필요합니다.

다음 방법 중 하나를 사용하여 Visual Studio 에서 기존 Windows Phone 프로젝트를 업그레이드할 수 있습니다.

  • 솔루션 탐색기에서 프로세스의 상황에 맞는 메뉴에 있는 Windows Phone 8.0으로 업그레이드 명령을 사용합니다.

  • 프로젝트 디자이너에서 대상 Windows Phone OS 버전 속성 값을 Windows Phone OS 8.0으로 변경합니다.

XNA Game Studio 4.0 프로젝트는 Windows Phone 8 로 업그레이드할 수 없습니다. 자세한 내용은 Windows Phone 8의 XNA Framework 및 앱 개발을 참조하세요.

솔루션 탐색기에서 Windows Phone 8.0으로 업그레이드 명령을 사용하여 Windows Phone OS 7.1 프로젝트를 업그레이드하려면

  1. Visual Studio 에서 업그레이드할 Windows Phone OS 7.1 앱 프로젝트를 엽니다.

  2. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 Windows Phone 8.0으로 업그레이드를 선택합니다. 프로젝트는 Windows Phone 8 에서 실행할 수 있도록 업그레이드됩니다.

    다음 그림에서는 솔루션 탐색기에서 프로젝트의 상황에 맞는 메뉴에 있는 Windows Phone 8.0으로 업그레이드 명령을 보여 줍니다.

    The Upgrade command on the context menu

프로젝트 디자이너에서 대상 버전을 변경하여 Windows Phone OS 7.1 프로젝트를 업그레이드하려면

  1. Visual Studio 의 프로젝트 메뉴에서 속성을 클릭하여 프로젝트 디자이너를 엽니다.

  2. 프로젝트 디자이너에서 응용프로그램 페이지의 대상 Windows Phone OS 버전 드롭다운 목록에서 Windows Phone OS 7.1을 선택합니다.

  3. 변경 사항을 저장합니다. 프로젝트는 Windows Phone 8 에서 실행할 수 있도록 업그레이드됩니다.

    다음 그림에서는 프로젝트 디자이너에 있는 응용프로그램 페이지의 대상 버전 드롭다운 목록을 보여 줍니다.

    Target Windows Phone Version

Windows Phone OS 7.1 을 대상으로 하는 다른 프로젝트에서 참조하는 프로젝트를 업그레이드하는 경우 다른 프로젝트도 업그레이드해야 합니다. 그렇지 않으면 Windows Phone OS 7.1 프로젝트가 Windows Phone 8 프로젝트를 참조하게 됩니다. 이러한 시나리오는 지원되지 않습니다.

Windows Phone 8 에서만 사용할 수 있는 기능을 업그레이드한 프로젝트에 추가하면 다음과 같은 사항도 변경해야 할 수 있습니다.

  • Windows Phone 8 에서 새로 도입된 API를 사용하는 경우, 새 API가 포함된 어셈블리의 프로젝트에 대한 참조를 추가하고 네임스페이스를 코드 파일로 가져와야 할 수 있습니다.

  • 앱에 새 Windows Phone 8 기능을 추가할 경우에는 앱 매니페스트 파일에서 기능과 하드웨어 요구 사항을 편집해야 할 수 있습니다.

    그러나 업그레이드 프로세스를 수행하면 더 이상 사용되지 않는 ID_CAP_MEDIALIB 기능이 자동으로 제거된 후 새 ID_CAP_MEDIALIB_AUDIO, ID_CAP_MEDIALIB_PLAYBACK 또는 ID_CAP_MEDIALIB_PHOTO 기능으로 적절히 바뀝니다.

Windows Phone OS 7.1 을 대상으로 하는 앱과 Windows Phone 8 을 대상으로 하는 앱의 호환성 문제에 대한 자세한 내용은 Windows Phone 8의 앱 플랫폼 호환성을 참조하세요. 이 호환성 문제는 앱 업그레이드 후 앱의 동작에 영향을 줄 수 있습니다.

Windows Phone 8 및 Windows Phone OS 7.1 모두에서 실행하는 앱을 유지 관리할 때 코드를 다시 사용하는 것에 대한 자세한 내용은 여러 버전을 Windows Phone 8용 앱 대상으로 지정하는 방법을 참조하세요.

기존 프로젝트의 대상을 Windows Phone OS 7.1 에서 Windows Phone 8 로 업그레이드하면, 업그레이드하는 동안 앱 매니페스트 파일이 다음과 같이 변경됩니다.

Windows Phone 8 앱 매니페스트 파일에 대한 자세한 내용은 Windows Phone 8의 앱 매니페스트 파일을 참조하세요.

참고참고:

다음 XML 예에서는, 줄 바꿈을 추가하여 가독성을 개선했습니다. 앱 매니페스트 파일을 수동으로 수정하는 경우에는 줄 바꿈을 추가하거나 공백을 더 추가하지 마세요.

기능

OS 버전

변경

네임스페이스

7.1

http://schemas.microsoft.com/windowsphone/2009/deployment

8.0

http://schemas.microsoft.com/windowsphone/2012/deployment

버전 번호

7.1

AppPlatformVersion=7.1

8.0

AppPlatformVersion=8.0

기본 언어

7.1

없음

8.0

<DefaultLanguage xmlns="" code="en-US"/>

PublisherID

7.1

없음

8.0

<App … PublisherID="{new random GUID}" … >

기능

7.1

ID_HW_FRONTCAMERA

8.0

ID_REQ_FRONTCAMERA 하드웨어 요구 사항으로 바뀌었습니다.

기능

7.1

ID_MEDIALIB

8.0

다음 중 하나 이상으로 바뀌었습니다.

  • ID_CAP_MEDIALIB_AUDIO

  • ID_CAP_MEDIALIB_PLAYBACK

  • ID_CAP_MEDIALIB_PHOTO

타일 지원

7.1

<Tokens>
  <PrimaryToken
      TokenID="EmptyNewWP71ProjectToken"
      TaskName="_default">
    <TemplateType5>
      <BackgroundImageURI IsRelative="true" IsResource="false">
        Background.png
      </BackgroundImageURI>
      <Count>0</Count>
      <Title>EmptyNewWP71Project</Title>
    </TemplateType5>
  </PrimaryToken>
</Tokens>

8.0

<Tokens>
  <PrimaryToken
      TokenID="EmptyNewWP80ProjectToken"
      TaskName="_default">
    <TemplateFlip>
      <SmallImageURI IsRelative="true" IsResource="false">
        Assets\Tiles\FlipCycleTileSmall.png
      </SmallImageURI>
      <Count>0</Count>
      <BackgroundImageURI IsRelative="true" IsResource="false">
        Assets\Tiles\FlipCycleTileMedium.png
      </BackgroundImageURI>
      <Title>EmptyNewWP80Project</Title>
      <BackContent></BackContent>
      <BackBackgroundImageURI></BackBackgroundImageURI>
      <BackTitle></BackTitle>
      <DeviceLockImageURI></DeviceLockImageURI>
      <HasLarge></HasLarge>
    </TemplateFlip>
  </PrimaryToken>
</Tokens>

화면 해상도

7.1

없음

8.0

<ScreenResolutions>
  <ScreenResolution Name="ID_RESOLUTION_WVGA"/>
  <ScreenResolution Name="ID_RESOLUTION_WXGA"/>
  <ScreenResolution Name="ID_RESOLUTION_HD720P"/>
</ScreenResolutions>

Windows Phone SDK 8.0 도구에서 Windows Phone OS 7.0 을 대상으로 하는 프로젝트를 열면 Visual Studio 에서 프로젝트를 대상 Windows Phone OS 7.1 로 업그레이드하라는 메시지가 표시됩니다. 프로젝트를 Windows Phone OS 7.1 을 대상으로 하도록 업그레이드한 후 Windows Phone 8 을 대상으로 하도록 업그레이드할 수 있습니다.

프로젝트를 Windows Phone OS 7.0 에서 업그레이드하려면

  1. Visual Studio 에서 Windows Phone OS 7.0 을 대상으로 하는 프로젝트를 엽니다. 다음 대화 상자에는 프로젝트를 업그레이드하라는 메시지가 표시됩니다.

    Upgrade warning for Windows Phone 7.0 projects
  2. 확인을 클릭합니다. 프로젝트는 Windows Phone OS 7.1 에서 실행할 수 있도록 업그레이드됩니다. 선택적으로 프로젝트를 업그레이드하여 Windows Phone 8 을 대상으로 할 수 있습니다.

이 섹션에서는 업그레이드가 실패할 수 있는 몇 가지 시나리오를 설명하고 실패의 원인을 파악하고 해결하는 데 도움을 줍니다.

업그레이드 후 확인할 수 없는 참조 관련 오류로 인해 앱 프로젝트 빌드가 실패합니다.

문제. 기존 프로젝트에서 SDK 어셈블리를 참조합니다. Windows Phone SDK 7.1 을 제거하고 Windows Phone SDK 8.0 을 설치합니다. Windows Phone SDK 8.0 은 동일한 SDK 어셈블리의 최신 버전을 동일한 경로에 설치합니다. 프로젝트에서 참조하는 이전 어셈블리가 더 이상 컴퓨터에 없습니다. 따라서 프로젝트를 업그레이드하기 전이나 후에 Windows Phone SDK 8.0 을 사용하여 프로젝트를 빌드할 수 없습니다.

예제. Windows Phone SDK 7.1 은 Microsoft Advertising SDK 어셈블리 버전 5.2를 설치합니다. Windows Phone SDK 8.0 은 동일한 어셈블리의 버전 6.1을 Windows Phone OS 7.1 을 대상으로 하는 앱과 동일한 경로에 설치합니다. Windows Phone SDK 7.1 을 제거하면 프로젝트에서 참조하는 이전 어셈블리가 더 이상 컴퓨터에 없습니다.

증상. 다음과 같은 경고 또는 오류가 표시될 수 있습니다.

The type or namespace name 'Advertising' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

Could not resolve this reference. Could not locate the assembly "Microsoft.Advertising.Mobile, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

The referenced component 'Microsoft.Advertising.Mobile' could not be found.

해결 방법. 이전 버전에 대한 참조를 수동으로 제거하고 SDK 어셈블리의 최신 버전에 대한 참조를 추가합니다.

업그레이드 후 중복된 형식 또는 모호한 형식 관련 오류로 인해 앱 프로젝트 빌드가 실패합니다.

문제. 기존 프로젝트는 Windows Phone Toolkit 와 같이 Microsoft SDK에 있는 어셈블리의 API를 사용합니다. Windows Phone 8 에서는 API가 Windows Phone 8 참조 어셈블리의 다른 네임스페이스로 이동되었습니다. 따라서 컴파일러에서 SDK 어셈블리의 정의와 참조 어셈블리의 정의를 선택할 수 없습니다.

예제. System.Tuple 형식은 Windows Phone OS 7.1 용 Windows Phone Toolkit 에 정의되었습니다. Windows Phone OS 8.0 에서는 System.Tuple 클래스가 mscorlib.dll로 이동되었습니다. 업그레이드된 프로젝트에 mscorlib.dll에 대한 기본 참조와 함께 Windows Phone OS 7.1 용 Windows Phone Toolkit 에 대한 참조가 계속 있는 경우 중복된 형식 또는 모호한 형식 관련 오류가 표시될 수 있습니다.

증상. 다음과 같은 경고가 표시될 수 있습니다.

The predefined type 'System.Tuple' is defined in multiple assemblies in the global alias; using definition from 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\mscorlib.dll'

해결 방법. Windows Phone 8 참조 어셈블리의 형식에 올바른 네임스페이스를 가리키도록 코드를 수동으로 업데이트합니다. 또는 형식 정의가 동일한 SDK 어셈블리의 최신 버전으로 이동된 경우 이전 버전에 대한 참조를 수동으로 제거하고 SDK 어셈블리의 최신 버전에 대한 참조를 추가합니다.

프로젝트에서 가져올 항목 관련 오류로 인해 업그레이드가 실패합니다.

증상. Windows Phone 8.0으로 업그레이드를 클릭하면 프로젝트에서 가져올 항목을 찾을 수 없다는 오류로 인해 실패합니다.

해결 방법. 프로젝트 파일에서 사용자 지정 조건부 가져오기를 만들도록 기존 가져오기 선언을 변경했는지 확인합니다. 사용자 지정을 제거한 후 업그레이드를 다시 시도합니다.

추가 정보. 업그레이드에 성공하려면 프로젝트 파일에 만들어진 가져오기 선언을 그대로 유지해야 합니다. 기본 가져오기 선언을 제거하거나 편집하면 프로젝트를 Windows Phone 8 로 업그레이드할 수 없습니다. 가져오기 선언을 사용자 지정한 경우 업그레이드 전에 수행된 사용자 지정을 실행 취소해야 할 수 있습니다.

System.Core.dll 또는 mscorlib.dll에 대한 참조가 누락되어 업그레이드가 실패합니다.

증상. Windows Phone 8.0으로 업그레이드를 클릭하면 다음 오류로 인해 실패합니다.

Upgrade error when reference is missing

해결 방법. 일부 기본 참조가 프로젝트에서 누락되었는지 확인합니다. 특히 System.Core.dll 및 mscorlib.dll이 참조되는지 확인합니다. 이러한 참조가 누락된 경우 다음 경로에서 이러한 어셈블리의 Windows Phone OS 7.1 버전에 대한 참조를 복원합니다.

Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71\

누락된 참조를 복원한 후 업그레이드를 다시 시도합니다.

추가 정보. Windows Phone OS 7.1 을 대상으로 하는 프로젝트에는 System.Core.dll 및 mscorlib.dll에 대한 명시적 참조가 필요합니다. 프로젝트를 Windows Phone 8 로 업그레이드하려면 이러한 참조가 있어야 합니다.

표시:
© 2016 Microsoft