最近、Windows Phone 8用のアプリを作成しましたが、WP7.xを使用する古いデバイスでも実行できるようにしたいと考えています。これは、WP8ではなくWP7を対象としたまったく新しいVisual Studioプロジェクトを作成しなくても可能ですか?利用可能な機能にとらわれないようにWP8をターゲットにしましたが、とにかくWP7で利用できない機能を使用することになったとは思わないので、WP7.xとの互換性を拡張したいと思います。これを可能な限り簡単に達成する方法についてのヒントはありますか?
3 に答える
WP8プロジェクトをWP7プロジェクトに「戻す」自動化された方法はありませんが、.csprojファイルを編集することで手動で行うことができます。
現在、Windows 8システムが手元にないので、どのアイテムが関係しているかはわかりませんが、WP7プロジェクトのプロジェクトファイルを見ると、次の行のすべてまたは一部を調整したことを思い出します。
<SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
<TargetFrameworkProfile>WindowsPhone71</TargetFrameworkProfile>
<TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.$(TargetFrameworkProfile).Overrides.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.CSharp.targets" />
メモリが機能する場合、WP8プロジェクトファイルには同様の行が含まれているため、上記の行に置き換える必要があります。WP7プロジェクトファイルとWP8プロジェクトファイルを比較すると、すぐに使用できます。もちろん、削除または追加する必要のある依存関係もあるかもしれません。
それ以外の場合は、完全に新しいプロジェクトを開始するオプションが常にあります:)
新しいWP7プロジェクトを作成する必要があります。プロジェクトファイルとソリューションファイルを編集する方法があるかもしれませんが、新しいWP7プロジェクトを作成し、既存のコードをtに追加する方が簡単です。
ところで。逆に行う必要があります。WP7から始めて、WP8の(ごくわずかな)新機能が必要な場合にのみ、プロジェクトをWP8にアップグレードしてください。
必然的に、WP7.xを対象とする別のプロジェクトを作成する必要
がありますが、特にWP8のみの機能を使用しない場合は、比較的簡単に作成できます。
保守性を向上させるには、たとえばVisual Studioの[リンクとして追加]機能を利用して、プロジェクト間で再利用可能なコードファイルを共有することを検討する必要があります。