情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 でアプリの複数のバージョンをターゲットにする方法

2014/06/18

Windows Phone 8 と Windows Phone OS 7.1 の両方を対象とするアプリを作成して管理するには、いくつかの方法があります。

  • 両方のバージョンで実行する単一の Windows Phone OS 7.1 アプリを作成します。

    Windows Phone OS 7.1 機能のみを使用し、両方のバージョンに対してテストする単一プロジェクトを作成できます。このアプローチでは、“共通する必要最低限” の機能を提供します。このアプローチでは、アプリは拡張機能や Windows Phone 8 で導入された新機能を使用できません。

  • バージョンごとにアプリの個別のコピーを作成します。

    対象とする異なるバージョンごとに個別のプロジェクトを作成できます。このアプローチでは、アプリの 2 つの別々のバージョンを管理し、さらに 2 か所で行われるすべての更新をレプリケートすることは困難です。

  • 共通のコードのクラス ライブラリを共有するアプリの 2 つのコピーを作成します。

    同じソリューションで 2 つのプロジェクトを作成し、共通のコードをリファクタリングして共有クラス ライブラリ プロジェクトに組み込みます。クラス ライブラリ プロジェクトは、Windows Phone OS 7.1 を対象にする必要があります。このアプローチでは、共有クラス ライブラリは拡張機能や Windows Phone 8 で導入された新機能を使用できません。

  • リンクされたソース コード ファイルを共有するアプリの 2 つのコピーを作成します。

    ソース コードを共有する同じソリューションに 2 つのプロジェクトを作成できます。次に、コード内で条件付きコンパイル定数を使用して、Windows Phone 8 で新たに導入されたアプリ機能を分離できます。

このトピックは、次のセクションで構成されています。

 

Windows Phone 8 と Windows Phone OS 7.1 の両方で動作するアプリまたはゲームを作成する最も簡単な方法は、Windows Phone OS 7.1 を対象とするアプリを作成し、それを両方のバージョンでテストすることです。ただし、このアプリでは Windows Phone 8 で新たに導入された機能や API は使用できません。

Windows Phone 8 および Windows Phone OS 7.1 で動作する単一の Windows Phone OS 7.1 アプリを作成するには

  1. Windows Phone SDK 8.0 を使用して、Windows Phone OS 7.1 をターゲットとするアプリを作成します。

  2. Windows Phone SDK 8.0 で提供されている Windows Phone OS 7.1 エミュレーターを使用してアプリをテストします。また、Windows Phone OS 7.1 デバイス上にアプリを配置しテストします。

  3. Windows Phone SDK 8.0 で提供されている Windows Phone 8 エミュレーターを使用してアプリをテストします。また、Windows Phone 8 デバイス上にアプリを配置しテストします。

別の方法は、Windows Phone OS 7.1 を対象とするライブラリ プロジェクトに共通のロジックを組み込むことです。次に、Windows Phone OS 7.1 と Windows Phone 8 の両方のアプリ プロジェクトからこのライブラリ プロジェクトを参照します。

Windows Phone 8 と Windows Phone OS 7.1 の両方で動作するアプリまたはゲームを作成する別の方法は、Windows Phone OS 7.1 を対象とするアプリを作成し、次に同じアプリの Windows Phone 8 バージョンを作成することです。各アプリは Visual Studio の個別のプロジェクトに常駐し、各プロジェクトは別々に管理されます。このアプローチでは、アプリの個別のコピーに改良を加える必要があるため、コードの再利用によるメリットは得られません。

Windows Phone 8 と Windows Phone OS 7.1 に対応する個別のアプリのコピーを作成するには

  1. Windows Phone SDK 8.0 を使用して、Windows Phone OS 7.1 をターゲットとするアプリを作成します。

  2. ファイル システムでアプリ プロジェクトのコピーを作成します。

  3. Visual Studio でコピーを開き、プロジェクトを Windows Phone 8 にアップグレードします。詳細については、「アプリ プロジェクトを Windows Phone 8 にアップグレードする方法」を参照してください。

  4. アプリの各コピーは個別に開発、テスト、および管理します。ただし、両方のプロジェクトを組み合わせて Visual Studio の単一のソリューションにすることができます。

2 つのプロジェクトを作成し、共通のクラス ライブラリを共有することができます。このソリューションでは、コードの重複部分が減少します。ただし、クラス ライブラリ プロジェクトは Windows Phone OS 7.1 を対象にする必要があるので、共有クラス ライブラリでは、拡張機能や Windows Phone 8 で導入された新機能を使用できません。

共通のコードのクラス ライブラリを共有するアプリの 2 つのコピーを作成するには

  1. Windows Phone SDK 8.0 を使用して、Windows Phone OS 7.1 を対象としたアプリを作成するか開きます。

    オプションで、同じソリューション内で作成する予定の Windows Phone 8 プロジェクトと区別するために、Windows Phone OS 7.1 プロジェクトに名前を付けるか名前を変更します。たとえば、SharedLibraryApp という名前を SharedLibraryApp.WP71 に変更します。

  2. Visual Studio 内の同じソリューションに、Windows Phone OS 7.1 を対象とする新しい Windows Phone クラス ライブラリ プロジェクトを追加します。

  3. アプリ プロジェクトに、新しいクラス ライブラリ プロジェクトへの参照を追加します。

  4. このクラス ライブラリに、元のアプリ プロジェクトから可能な限り多くのコードをリファクターします。

  5. Visual Studio 内の同じソリューションに、Windows Phone 8 を対象とする新しいアプリ プロジェクトを追加します。

  6. 新しいアプリ プロジェクトに、共有クラス ライブラリ プロジェクトへの参照を追加します。

コードを共有する 2 つのリンクされたプロジェクトを作成し、条件付きコンパイルを使用してバージョン固有のセクションを分離することができます。この方法では重複する部分が小さくなるため、一貫性が確保しやすくなり、保守が容易になります。

リンクされたソース コード ファイルを共有するアプリの 2 つのコピーを作成するには

  1. Windows Phone SDK 8.0 を使用して、Windows Phone OS 7.1 を対象としたアプリを作成するか開きます。

    オプションで、同じソリューション内で作成する予定の Windows Phone 8 プロジェクトと区別するために、Windows Phone OS 7.1 プロジェクトに名前を付けるか名前を変更します。たとえば、MultiVersionApp という名前を MultiVersionApp71 に変更します。

  2. ファイル エクスプローラーで、同じソリューション フォルダー内にプロジェクトのコピーを作成します。

  3. ファイル エクスプローラーで、新しいプロジェクトのフォルダーおよびプロジェクト ファイルの名前を MultiVersionApp80 に変更します。

  4. Visual Studio ソリューション エクスプローラーで、ソリューションを右クリックします。コンテキスト メニューから [追加] を選択し、次に [既存のプロジェクト] を選択します。

  5. [既存のプロジェクトの追加] ダイアログ ボックスで、新しいプロジェクト MultiVersionApp80 に移動します。プロジェクトを選択し、[開く] をクリックします。

    プロジェクトがソリューション エクスプローラーに追加されます。

  6. ソリューション エクスプローラーで MultiVersionApp80 プロジェクトを右クリックし、[Windows Phone 8.0 へのアップグレード] を選択します。

    プロジェクトがアップグレードされます。以上で、このソリューションに Windows Phone OS 7.1 を対象とするアプリと、Windows Phone 8 を対象とするアプリが含まれるようになりました。次のステップは、コードの共有です。

  7. ソリューション エクスプローラーの Windows Phone 8 プロジェクトで、プロジェクト間で共有したいファイルを削除します。たとえば、XAML ページとそれらの分離コード ファイルを共有できます。また、両方のバージョンでイメージの解像度が正しい場合は、JPG グラフィックスと PNG グラフィックスも共有できます。

  8. Windows Phone 8 プロジェクトで、プロジェクト間で共有する Windows Phone OS 7.1 プロジェクト内のファイルへリンクします。次の 2 つの異なるメソッドを使用して、ファイルをリンクとして追加できます。

    • Windows Phone 8 プロジェクトで、リンクするファイルごとに、プロジェクトを右クリックして [追加] を選択します。[既存の項目] を選択します。[既存項目の追加] ダイアログ ボックスで、ファイルを選択します。[追加] ボタンの横にある矢印をクリックして [リンクとして追加] を選択します。この方法では、一度に複数のファイルをリンクすることができます。

      または

    • Windows Phone OS 7.1 プロジェクトで、リンクするファイルを選択します。Alt キーを押しながら、ファイルを Windows Phone 8 プロジェクトにドラッグします。マウス ポインターが変わり、リンクが追加されることを示します。マウスの左ボタンを離します。この方法では、一度に 1 つのファイルしかリンクできません。

    次の図のように、プロジェクトにファイルへのリンクが追加され、ファイルがリンクされていることを示すアイコンが表示されます。

    Solution Explorer with linked source code files
  9. コード内で #define ディレクティブを使用するか、Project Designer の Build ページを使用して、条件付きコンパイルのシンボルを定義します。たとえば、Windows Phone 8 プロジェクトで WP8 を定義します。

  10. 共有コード ファイルで #if WP8 … #endif などの条件付きコンパイル ディレクティブを使用し、Windows Phone 8 に導入された新機能を使用するコード セクションを分離します。

  11. 適切な Windows Phone バージョンのエミュレーターとデバイスで各プロジェクトをテストしデバッグします。

表示: