ポータブルクラスライブラリを使用したクロスプラットフォーム開発Cross-platform development with the Portable Class Library

Visual Studio のポータブルクラスライブラリのプロジェクトの種類を使用すると、Microsoft プラットフォーム向けのクロスプラットフォームアプリやライブラリをすばやく簡単にビルドできます。The Portable Class Library project type in Visual Studio helps you build cross-platform apps and libraries for Microsoft platforms quickly and easily.

重要

ポータブル クラス ライブラリ プロジェクトでは、.NET 実装の非常に特定のサブセットのみを対象としているためにお勧め、新しいアプリケーションの開発で使用します。Because Portable Class Library projects target only a very specific subset of .NET implementations, we strongly discourage their use in new application development. 推奨されるコントロールは、.NET Standard の特定のバージョンをサポートするすべての .NET 実装をターゲットと .NET Standard ライブラリです。The recommended replacement is a .NET Standard library, which targets all .NET implementations that support a specific version of the .NET Standard. 詳細については、「.NET Standard」をご覧ください。For more information, see .NET Standard.

ポータブル クラス ライブラリにより、コードの開発とテストにかかる時間とコストを削減できます。Portable class libraries can help you reduce the time and costs of developing and testing code. このプロジェクトの種類を使用して、ポータブル .NET Framework アセンブリを作成してビルドし、.NET Framework、iOS、Mac などの複数のプラットフォームを対象とするアプリからそれらのアセンブリを参照します。Use this project type to write and build portable .NET Framework assemblies, and then reference those assemblies from apps that target multiple platforms such as the .NET Framework, iOS, or Mac.

Visual Studio でポータブル クラス ライブラリ プロジェクトを作成し、プロジェクトの開発を開始した後でも、ターゲット プラットフォームを変更できます。Even after you create a Portable Class Library project in Visual Studio and start developing it, you can change the target platforms. Visual Studio では、新しいアセンブリを使用してライブラリをコンパイルします。これにより、コードで行う必要がある変更を特定できます。Visual Studio compiles your library with the new assemblies, which helps you identify the changes you need to make in your code.

ポータブルクラスライブラリプロジェクトを作成するCreate a Portable Class Library project

ポータブルクラスライブラリを作成するには、Visual Studio に用意されているテンプレートを使用します。To create a Portable Class Library, use the template provided in Visual Studio. 新しいプロジェクト (ファイル > 新しいプロジェクト) を作成し、 [新しいプロジェクト] ダイアログボックスで、プログラミング言語 (ビジュアルC#または Visual Basic) を選択します。Create a new project (File > New Project), and in the New Project dialog box, select your programming language (Visual C# or Visual Basic). 次に、 [クラスライブラリ (レガシポータブル)] テンプレートを選択します。Then, select the Class Library (Legacy Portable) template. プロジェクトの名前を入力し、[ OK] を選択します。Enter a name for your project and choose OK.

[ポータブルクラスライブラリの追加] ダイアログボックスが表示されます。The Add Portable Class Library dialog box appears. 2つ以上のターゲットを選択し、[ OK] をクリックします。Choose two or more targets, and then choose OK.

Visual Studio でポータブルクラスライブラリターゲットを追加する

ターゲットの変更Change targets

ポータブルクラスライブラリプロジェクトを作成するとき、または開発を開始した後で、ターゲットプラットフォームを変更できます。You can change the target platforms of a portable class library project when you create it or after you’ve started development. プロジェクトの作成後にターゲットを変更する場合は、ソリューションエクスプローラーで、ポータブルクラスライブラリプロジェクト (ソリューションではない) のショートカットメニューを開き、 [プロパティ] を選択します。If you want to change the targets after you’ve created your project, in Solution Explorer, open the shortcut menu for your Portable Class Library project (not the solution), and then choose Properties. プロジェクトのプロパティページの [ライブラリ] タブに、プロジェクトが現在対象としているプラットフォームが表示されます。On the project properties page, the Library tab shows the platforms that your project currently targets.

Visual Studio のポータブルクラスライブラリのプロジェクトプロパティ

ターゲットを追加または削除するには、 [変更] ボタンをクリックし、適切なチェックボックスをオンまたはオフにします。To add or remove targets, choose the Change button, and then select and clear the appropriate check boxes.

ターゲットを変更すると、変更後のターゲットに合わせて、プロジェクトの開発に使用できる API が変更されます。When you change the targets, the APIs that are available to you for developing your project will change to match your selection. Visual Studio は、ターゲットを変更したことで発生する可能性があるエラーと警告を報告します。Visual Studio reports the errors and warnings that may occur as a result of the targets changing.

Visual Studio で変更を加える前にアセンブリの移植性を評価する場合は、 .Net 移植性アナライザーを使用できます。If you want to evaluate the portability of your assemblies before you make changes in Visual Studio, you can use the .NET Portability Analyzer.

サポートされている型とメンバーSupported types and members

ポータブル クラス ライブラリのプロジェクトで使用できる型とメンバーは、互換性に関するいくつかの要因による制約を受けます。The types and members that are available in Portable Class Library projects are constrained by several compatibility factors:

  • 選択したターゲット間で共有される必要があります。They must be shared across the targets you selected.

  • それらのターゲット間で同様に動作する必要があります。The must behave similarly across those targets.

  • 廃止候補であってはなりません。They must not be candidates for deprecation.

  • 特にサポートしているメンバーがポータブルでない場合は、ポータブルな環境に意味がある必要があります。They must make sense in a portable environment, especially when supporting members are not portable.

メンバーがポータブル クラス ライブラリでサポートされており、選択したターゲットのメンバーである場合、IntelliSense でプロジェクトにこのメンバーが表示されます。If a member is supported in the Portable Class Library and for your selected targets, it will appear in your project in IntelliSense. ただし、API がポータブル クラス ライブラリでサポートされている可能性があります。API を使用できるかどうかは、選択したターゲットによって異なります。However, remember that an API may be supported in the Portable Class Library, but whether you can use the API depends on the targets you select.

ポータブル クラス ライブラリでの API の相違点API differences in the Portable Class Library

サポートされるすべてのプラットフォームでポータブル クラス ライブラリ アセンブリの互換性を確保するために、ポータブル クラス ライブラリでは一部のメンバーが若干変更されています。To make Portable Class Library assemblies compatible across all supported platforms, some members have been slightly changed in the Portable Class Library.

ポータブルクラスライブラリを使用するUse the Portable Class Library

ポータブル クラス ライブラリ プロジェクトをビルドしたら、他のプロジェクトからそのプロジェクトを参照します。After you build your Portable Class Library project, you just reference it from other projects. プロジェクトを参照することも、アクセスする必要のあるクラスを含む特定のアセンブリを参照することもできます。You can reference either the project or specific assemblies that contain the classes you want to access.

ポータブル クラス ライブラリ アセンブリを参照するアプリを実行するには、ターゲット プラットフォームの必要なバージョン (またはそれ以上のバージョン) がコンピューターにインストールされている必要があります。To run an app that references a Portable Class Library assembly, the required version (or later) of the targeted platforms must be installed on your computer. Visual Studio には必要なすべてのフレームワークが含まれるため、さらに変更を加えることなく、アプリケーションの開発に使用したコンピューターでアプリケーションを実行できます。Visual Studio contains all the required frameworks, so you can run the app without further modification on the computer that you used to develop the app.

ユニバーサル Windows アプリを展開するDeploy a Universal Windows app

ポータブルクラスライブラリアセンブリを参照するユニバーサル Windows アプリを作成する場合、アプリを展開するために必要なものはすべてアプリパッケージに含まれており、それ以上の手順は必要ありません。When you create a Universal Windows app that references a Portable Class Library assembly, everything you need to deploy the app is included in the app package, and no further steps are required.

.NET Framework アプリをデプロイするDeploy a .NET Framework app

ポータブル クラス ライブラリ アセンブリを参照する .NET Framework アプリを配置するときは、.NET Framework の正しいバージョンに対する依存関係を指定する必要があります。When you deploy a .NET Framework app that references a Portable Class Library assembly, you must specify a dependency on the correct version of the .NET Framework. この依存関係を指定することで、必要なバージョンがアプリケーションと共に確実にインストールされます。By specifying this dependency, you ensure that the required version is installed with your app.

  • ClickOnce 配置を使用して依存関係を作成するには:ソリューションエクスプローラーで、発行するプロジェクトのプロジェクトノードを選択します。To create a dependency with ClickOnce deployment: In Solution Explorer, choose the project node for the project you want to publish. (これは、ポータブルクラスライブラリプロジェクトを参照するプロジェクトです)。メニューバーで、[プロジェクト > プロパティ] を選択し、 [発行] タブを選択します。 [発行] ページで、 [前提条件] を選択します。(This is the project that references the Portable Class Library project.) On the menu bar, choose Project > Properties, and then choose the Publish tab. On the Publish page, choose Prerequisites. 必須コンポーネントとして、必要な .NET Framework のバージョンを選択します。Select the required .NET Framework version as a prerequisite.

  • セットアッププロジェクトとの依存関係を作成するには、ソリューションエクスプローラーで、セットアッププロジェクトを選択します。To create a dependency with a setup project: In Solution Explorer, choose the setup project. メニューバーで、[プロジェクト > のプロパティ > 必須コンポーネント] を選択します。On the menu bar, choose Project > Properties > Prerequisites. 必須コンポーネントとして、必要な .NET Framework のバージョンを選択します。Select the required .NET Framework version as a prerequisite.

.NET Framework アプリのデプロイの詳細については、「開発者向け配置ガイド」を参照してください。For more information about deploying .NET Framework apps, see Deployment Guide for Developers.

参照See also