この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

汎用性のあるクラス ライブラリを使用したプラットフォーム間の開発

Visual Studio の .NET Framework ポータブル クラス ライブラリ プロジェクト タイプにより、Microsoft プラットフォームを対象としたクロスプラットフォーム アプリとライブラリをすばやく簡単に開発できます。

ポータブル クラス ライブラリにより、コードの開発とテストにかかる時間とコストを削減できます。 このプロジェクト タイプを使用してポータブル .NET Framework アセンブリを記述およびビルドし、Windows や Windows Phone など複数のプラットフォームを対象としたアプリから、これらのアセンブリを参照します。

Visual Studio でポータブル クラス ライブラリ プロジェクトを作成し、プロジェクトの開発を開始した後でも、ターゲット プラットフォームを変更できます。 Visual Studio は新しいアセンブリを使用してライブラリをコンパイルするので、コードに対して行う必要がある変更を確認できます。

この記事では、Visual Studio でのアプリの開発について説明します。しかし、Microsoft は、Xamarin などのほかのツールを使用してアプリとライブラリを開発するときに使用できるポータブル クラス ライブラリ参照アセンブリも提供します。 このようなアプリとライブラリは、Microsoft 以外のプラットフォーム上で .NET Framework ベースのランタイムで使用できます。 参照アセンブリの詳細については、「Portable Class Library (PCL) now available on all platforms (ポータブル クラス ライブラリ (PCL)、全プラットフォームで使用可能に)」(ブログの投稿) を参照してください。 アセンブリをダウンロードするには、Microsoft ダウンロード センターの「Microsoft .NET Portable Library Reference Assemblies (Microsoft .NET ポータブル ライブラリ参照アセンブリ) 」を参照してください。 Xamarin で参照アセンブリを使用する方法の詳細については、「PCL and .NET NuGet Libraries now enabled for Xamarin (PCL および .NET NuGet ライブラリ、Xamarin 対応へ)」(ブログの投稿) を参照してください。

Visual Studio には、ポータブル クラス ライブラリの開発に役立つテンプレートがあります。 使用している Visual Studio のバージョンによっては、使用可能なテンプレートやメニューはこの記事で説明するものとは異なることがあります。

Caution メモ 注意

Visual Studio 2013 更新プログラム 2 には、ポータブル クラス ライブラリ テンプレートの更新が含まれています。 古いバージョンの Visual Studio と Visual Studio 2013 が同じコンピューターにインストールされている場合に更新プログラム 2 をインストールすると、[ターゲット フレームワーク] の選択項目の変更は両方のバージョンの Visual Studio に適用されます。

このトピックの内容

Visual Studio のサポート
ポータブル クラス ライブラリ プロジェクトの作成
ターゲット オプション
ターゲットの変更
サポートされている機能
サポートされている型とメンバー
ポータブル クラス ライブラリでの API の相違点
ポータブル クラス ライブラリの使用

Visual Studio のポータブル クラス ライブラリのサポートは、ご使用の Visual Studio のバージョンで異なります。 次の表に示すように、必要なアイテムがすべて揃っている場合と、追加のアイテムをインストールする必要がある場合があります。

Visual Studio SKU

ポータブル クラス ライブラリ プロジェクト作成のサポート

Visual Studio 2010、Professional、Premium、または Ultimate

はい (ポータブル ライブラリ ツールをインストールする場合)

Visual Studio Express 2010 の各バージョン

いいえ。

Visual Studio 2012、Professional、Premium、または Ultimate

はい。 Phone をサポートするには、Windows Phone SDK 8.0をインストールしてください。

Visual Studio Express 2012 の各バージョン

いいえ。

Visual Studio 2013、Professional、Premium、または Ultimate

はい。 Windows Phone 8.1 をサポートするには、Visual Studio 2013 更新プログラム 2 をインストールしてください。

Visual Studio Express 2013 for Windows

はい (更新プログラム 2 を含む最新バージョンの Visual Studio Express をインストールする場合、または Visual Studio 2013 更新プログラム 2 を追加する場合)。

ポータブル クラス ライブラリを作成するには、Visual Studio に用意されているテンプレートのいずれかを使用してください。 新しいプロジェクトを作成し、[新しいプロジェクト] ダイアログ ボックスの [テンプレート] の下で、ターゲット言語 (C# または Visual Basic) を選択し、次にターゲット プラットフォームを 1 つ選択します。 次のステップで追加のプラットフォームを選択できます。

Visual Studio 2013 更新プログラム 2 では、選択した言語とプラットフォームに対応したクラス ライブラリ (ポータブル) テンプレートを選択して、ポータブル クラス ライブラリを作成できます。 このテンプレートは次のプラットフォームで表示されます。

  • ストア アプリ

  • Windows デスクトップ

  • Silverlight

Windows Phone 8.1 または Windows 8.1 を対象としたライブラリを C# で作成する場合、[ストア アプリ] を選択してから、[クラス ライブラリ (ユニバーサル アプリ用ポータブル)] を選択します。

ストア アプリのポータブル クラス ライブラリ

このテンプレートでは、ターゲットとして Windows 8.1 と Windows Phone 8.1 が自動的に選択されます。 Windows 8.1 と Windows Phone 8.1 のみをターゲットとするライブラリを作成する場合は、後でターゲット プラットフォームを変更したり、プラットフォームを追加したりできます。

Visual Studio 2012 または Visual Studio 2013 (更新プログラム 2 を含まない) を使用している場合は、新しいプロジェクトを作成し、[Visual C#] または [Visual Basic] の下で [ポータブル クラス ライブラリ] テンプレートを選択します。

汎用性のあるライブラリ プロジェクトの選択

[ポータブル クラス ライブラリの追加] ダイアログ ボックスが表示され、追加するプラットフォームを選択できます。 このダイアログ ボックスに、選択したターゲットに基づいて互換性に関する警告が表示されます。



Visual Studio 2013 更新プログラム 2 の [ポータブル クラス ライブラリの追加] ダイアログ ボックス

VS2013 の [ターゲット フレームワークの変更] ダイアログ

Visual Studio 2012 と Visual Studio 2013 のどちらを使用している場合でも、ポータブル クラス ライブラリ プロジェクトを作成するときにプラットフォームを選択できます。また、プロジェクトの作成後にプロジェクトのプロパティを使用してターゲット プラットフォームを変更できます。

ポータブル クラス ライブラリ プロジェクトを作成するときに、ターゲットにするオペレーティング システムと .NET Framework バージョンを選択できます。 Visual Studio 2013 を使用し、かつ Update 2 以降をインストールしている場合は、[クラス ライブラリ (ユニバーサル アプリ用ポータブル)] テンプレートを選択して、Windows 8.1 と Windows Phone 8.1 の両方をターゲットとしたポータブル クラス ライブラリを作成できます。 Visual Studio のバージョン別に選択可能なターゲットを次の表に示します。

ターゲット オプション

Visual Studio 2012

Visual Studio 2013

Visual Studio 2013 Update 2 以降

.NET Framework

  • .NET Framework 4 以上

  • .NET Framework 4.0.3 以上

  • .NET Framework 4.5

  • .NET Framework 4 以上

  • .NET Framework 4.0.3 以上

  • .NET Framework 4.5 以上

  • .NET Framework 4.5.1

  • .NET Framework 4

  • .NET Framework 4.0.3

  • .NET Framework 4.5

  • .NET Framework 4.5.1

Windows Phone

  • Windows Phone 7 以上

  • Windows Phone 7.5 以上

  • Windows Phone 8

  • Windows Phone 8

  • Windows Phone Silverlight 8

  • Windows Phone Silverlight 8.1

Windows ランタイムと XAML をサポートするには、次を選択してください。

  • Windows Phone 8.1

Windows ストア

  • Windows ストア アプリ用 .NET

  • Windows ストア アプリ (Windows 8 以上)

  • Windows ストア アプリ (Windows 8.1)

  • Windows 8

  • Windows 8.1

Silverlight

  • Silverlight 4 以上

  • Silverlight 5

  • Silverlight 5

  • Silverlight 5

Xbox

  • Xbox 360

N/A

N/A

ポータブル クラス ライブラリ テンプレートを選択すると、既定のプラットフォームが自動的に選択されます。ただしこの既定値は、インストールされている Visual Studio のバージョンと、以前に選択したターゲットに応じて異なります。 ポータブル クラス ライブラリの作成時、またはポータブル クラス ライブラリの開発開始後、プラットフォームを変更できます。

プロジェクトの作成後にターゲットを変更するには、ソリューション エクスプローラーで、(ソリューションではなく) ポータブル クラス ライブラリ プロジェクトのショートカット メニューを開き、[プロパティ] を選択します。 プロジェクトのプロパティ ページの [ライブラリ] タブに、プロジェクトの現在のターゲット プラットフォームが表示されます。



Visual Studio 2013 更新プログラム 2 のポータブル クラス ライブラリ プロパティ ページ

プロジェクト プロパティ

ターゲットを追加または削除するには、[変更] ボタンをクリックし、適切なチェック ボックスをオンまたはオフにします。

ターゲットを変更すると、変更後のターゲットに合わせて、プロジェクトの開発に使用できる API が変更されます。 Visual Studio は、ターゲットを変更したことで発生する可能性があるエラーと警告を報告します。

Visual Studio で変更を行う前にアセンブリの移植性を評価する場合は、.NET 移植性アナライザーを使用できます。

メニュー オプションは、ご使用の Visual Studio のバージョンによって異なります。



Visual Studio 2012 の [ターゲットの変更] ダイアログ ボックス

ターゲットの変更

次の表に、各プラットフォームでサポートされている機能とバージョンを示します。 中には Microsoft がNuGet パッケージのリリースのサポートを追加しているものがありますが、その場合は注記が付されています。 .NET Framework の NuGet パッケージの詳細については、「.NET Framework および特別なリリース」を参照してください。

機能

.NET Framework

Windows ストア

Windows Phone ストア

Windows Phone Silverlight

Silverlight

Xbox 360

4

4.0.3

4.5

8

8.1

8.1

7.5

8

8.1

4

5

コア ライブラリ

非同期サポート

[圧縮]

データの注釈

Dynamic キーワード

HTTPClient

IQueryable

統合言語クエリ (LINQ)

Managed Extensibility Network (MEF)

Network Class Library (NCL)

シリアル化 (データ コントラクト、XML、JSON)

System.Numerics

ビュー モデル (MVVM)

Windows Communication Foundation (WCF)

Windows ランタイム API

Windows.UI.XAML

XLINQ

Microsoft Async パッケージが必要です。
Microsoft Compression パッケージが必要です。
Microsoft HTTP Client Libraries パッケージが必要です。

Caution メモ 注意

Windows Phone Silverlight 8.1 アプリで使用されているポータブル ライブラリから Microsoft Compression パッケージと Microsoft HTTP Client Libraries パッケージを参照すると、エラーが発生することがあります。 詳細については、「Windows Phone Silverlight 8.1 アプリのプラットフォーム互換性と最新の変更点」を参照してください。

ポータブル クラス ライブラリのプロジェクトで使用できる型とメンバーは、互換性に関するいくつかの要因による制約を受けます。

  • 選択したターゲット間で共有される必要があります。

  • それらのターゲット間で同様に動作する必要があります。

  • 廃止候補であってはなりません。

  • 特にサポートしているメンバーがポータブルでない場合は、ポータブルな環境に意味がある必要があります。

たとえば、ターゲットが Windows 8.1 と Windows Phone 8.1 の場合、ポータブル クラス ライブラリには UI 関連の型のみが含まれます。 また、ポータブル クラス ライブラリが導入される前にリリースされたプラットフォーム (Xbox、.NET Framework 4、Windows Phone 7 など) を対象とする場合、制限が課せられる可能性があります。 .NET Framework は NuGet でパッケージをリリースしています。これにより、このような古いプラットフォームの一部でのポータブル クラス ライブラリのサポートが向上します。 NuGet パッケージの詳細と一覧については、「.NET Framework および特別なリリース」を参照してください。 ポータブル クラス ライブラリのプラットフォーム サポートにおける相違を回避する方法については、「汎用性のあるクラス ライブラリを使用したプラットフォームの抽象化」を参照してください。

メンバーがポータブル クラス ライブラリでサポートされており、選択したターゲットのメンバーである場合、IntelliSense でプロジェクトにこのメンバーが表示されます。 また、.NET Framework クラス ライブラリ のメンバー テーブルでは、サポートされるメンバーの横に [ポータブル クラス ライブラリ] アイコン が表示されます。 たとえば、次のメンバー テーブルは、ポータブル クラス ライブラリで String クラスの Chars プロパティがサポートされていることを示しています。



ポータブル クラス ライブラリのアイコン

[サポートされているメンバー] アイコン

また、参照トピックの「バージョン情報」セクションで、型またはメンバーがポータブル クラス ライブラリ プロジェクトでサポートされていることを示す注を確認できます。



バージョン情報の例

汎用性のあるライブラリのバージョン情報

ただし、API がポータブル クラス ライブラリでサポートされている可能性があります。API を使用できるかどうかは、選択したターゲットによって異なります。

サポートされるすべてのプラットフォームでポータブル クラス ライブラリ アセンブリの互換性を確保するために、ポータブル クラス ライブラリでは一部のメンバーが若干変更されています。 変更されたメンバーおよび変更の内容については、「汎用性のあるクラス ライブラリでの API の相違点」を参照してください。

ポータブル クラス ライブラリ プロジェクトをビルドしたら、他のプロジェクトからそのプロジェクトを参照します。 プロジェクトを参照することも、アクセスする必要のあるクラスを含む特定のアセンブリを参照することもできます。

ポータブル クラス ライブラリ アセンブリを参照するアプリを実行するには、ターゲット プラットフォームの必要なバージョン (またはそれ以上のバージョン) がコンピューターにインストールされている必要があります。 Visual Studio には必要なすべてのフレームワークが含まれるため、さらに変更を加えることなく、アプリケーションの開発に使用したコンピューターでアプリケーションを実行できます。

Gg597391.collapse_all(ja-jp,VS.110).gifWindows Store アプリまたは Windows Phone アプリの配置

ポータブル クラス ライブラリ アセンブリを参照する Windows ストア アプリまたは Windows Phone アプリを作成する場合、そのアプリを配置するために必要なすべての機能はアプリ パッケージに含まれており、追加の作業は不要です。

Gg597391.collapse_all(ja-jp,VS.110).gif.NET Framework アプリの配置

ポータブル クラス ライブラリ アセンブリを参照する .NET Framework アプリを配置するときは、.NET Framework の正しいバージョンに対する依存関係を指定する必要があります。 この依存関係を指定することで、必要なバージョンがアプリケーションと共に確実にインストールされます。 .NET Framework 4 以上を対象としている場合、更新プログラム を含む .NET Framework 4、.NET Framework 4 の更新プログラム 4.0.3、または .NET Framework 4.5 がコンピューターにインストールされている必要があります。

  • ClickOnce 配置で依存関係を作成するには、ソリューション エクスプローラーで、発行するプロジェクトのプロジェクト ノードを選択します。 (これは、ポータブル クラス ライブラリ プロジェクトを参照するプロジェクトです。)メニュー バーで [プロジェクト][プロパティ] をクリックし、[発行] タブをクリックします。 [発行] ページで、[必須コンポーネント] をクリックします。 必須コンポーネントとして、必要な .NET Framework のバージョン (または .NET Framework 4 の更新プログラム) を選択します。

  • セットアップ プロジェクトで依存関係を作成するには、ソリューション エクスプローラーで、セットアップ プロジェクトを選択します。 メニュー バーで、[プロジェクト][プロパティ][必須コンポーネント] の順に選択します。 必須コンポーネントとして、必要な .NET Framework のバージョンを選択します。

.NET Framework アプリケーションの配置の詳細については、「.NET Framework 配置ガイド (開発者向け)」を参照してください。

Gg597391.collapse_all(ja-jp,VS.110).gifSilverlight ベースのアプリの配置

ポータブル クラス ライブラリ アセンブリを参照する Silverlight ベースのアプリを配置するときは、アプリに必要な最小ランタイム バージョンが、対象とするバージョンに対応していることを確認する必要があります。 Silverlight 4 を対象とする場合は、バージョンは 4.0.60129.0 以降である必要があります。 Silverlight ベースのアプリケーションをホストする Web ページに <param name="minRuntimeVersion" value="4.0.60129.0" /> を含めることでバージョンを設定します。

<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," 
           type="application/x-silverlight-2" width="100%" height="100%">
    <param name="source" value="ClientBin/SilverlightApplication.xap"/>
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="4.0.60129.0" />
    <param name="autoUpgrade" value="true" />
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" 
             style="text-decoration:none">
      <img src=http://go.microsoft.com/fwlink/?LinkId=161376
             alt="Get Microsoft Silverlight" style="border-style:none"/>
    </a>
  </object>
   <iframe id="_sl_historyFrame" 
              style="visibility:hidden;height:0px;width:0px;border:0px">
   </iframe>
</div>

コミュニティの追加

表示:
© 2015 Microsoft