MSBuild のマルチ ターゲットの概要MSBuild Multitargeting Overview

MSBuild を使用すると、.NET Framework のいずれかのバージョンやいずれかのシステム プラットフォームで動作するように、アプリケーションをコンパイルできます。By using MSBuild, you can compile an application to run on any one of several versions of the .NET Framework, and on any one of several system platforms. たとえば、あるアプリケーションを 32 ビット プラットフォーム上の .NET Framework 2.0 で動作するようにコンパイルしたり、これと同じアプリケーションを 64 ビット プラットフォーム上の .NET Framework 4.5 で動作するようにコンパイルしたりできます。For example, you can compile an application to run on the .NET Framework 2.0 on a 32-bit platform, and compile the same application to run on the .NET Framework 4.5 on a 64-bit platform.


"マルチ ターゲット" という用語が使用されていますが、プロジェクトでは、一度に 1 つのフレームワークと 1 つのプラットフォームだけを対象にすることができます。Despite the name "multitargeting", a project can target only one framework and only one platform at a time.

MSBuild の機能の対象となるフレームワークやプラットフォームの一部を次に示します。These are some of the features of MSBuild targeting:

  • バージョン 2.0、3.5、4 などの以前のバージョンの .NET Framework を対象とするアプリケーションを開発できます。You can develop an application that targets an earlier version of the .NET Framework, for example, versions 2.0, 3.5, or 4.

  • Silverlight フレームワークなど、.NET Framework 以外のフレームワークを対象にできます。You can target a framework other than the .NET Framework, for example, the Silverlight Framework.

  • ターゲット フレームワークの定義済みのサブセットであるフレームワーク プロファイルを対象にできます。You can target a framework profile, which is a predefined subset of a target framework.

  • 現在のバージョンの .NET Framework 用サービス パックがリリースされた場合、そのバージョンを対象にできます。If a service pack for the current version of the .NET Framework is released, you could target it.

  • MSBuild の対象となるフレームワークやプラットフォームで動作するアプリケーションでは、それらのフレームワークやプラットフォームで利用できる機能だけを使うことができます。MSBuild targeting guarantees that an application uses only the functionality that is available in the targeted framework and platform.

ターゲット フレームワークとターゲット プラットフォームTarget Framework and Platform

ターゲット フレームワークは、ビルドされるプロジェクトの実行対象となる .NET Framework のバージョンを表します。また、ターゲット プラットフォームは、ビルドされるプロジェクトの実行対象となるシステム プラットフォームを表します。A target framework is the version of the .NET Framework that a project is built to run on, and a target platform is the system platform that the project is built to run on. たとえば、802x86 プロセッサ ファミリ (x86) と互換性のある 32 ビット プラットフォームで動作する .NET Framework 2.0 アプリケーションを対象とする場合があります。For example, you might want to target a .NET Framework 2.0 application to run on a 32-bit platform that is compatible with the 802x86 processor family (x86). ターゲット フレームワークとターゲット プラットフォームの組み合わせはターゲット コンテキストと呼ばれます。The combination of target framework and target platform is known as the target context. 詳細については、「ターゲット フレームワークおよびターゲット プラットフォーム」を参照してください。For more information, see Target Framework and Target Platform.

ツール セット (ToolsVersion)Toolset (ToolsVersion)

ツール セットには、アプリケーションの作成に使用されるツール、タスク、ターゲットがまとめられています。A Toolset collects together the tools, tasks, and targets that are used to create the application. ツールセットには、csc.exe や vbc.exe などのコンパイラ、共通 targets ファイル (microsoft.common.targets)、および共通 tasks ファイル (microsoft.common.tasks) が含まれています。A Toolset includes compilers such as csc.exe and vbc.exe, the common targets file (microsoft.common.targets), and the common tasks file (microsoft.common.tasks). 4.5 ツールセットを使用すると、バージョン 2.0、3.0、3.5、4、4.5 の .NET Framework を対象とすることができます。The 4.5 Toolset can be used to target .NET Framework versions 2.0, 3.0, 3.5, 4, and 4.5. ただし、2.0 ツールセットは .NET Framework バージョン 2.0 のみを対象として使用できます。However, the 2.0 Toolset can only be used to target the .NET Framework version 2.0. 詳細については、「ツール セット (ToolsVersion)」を参照してください。For more information, see Toolset (ToolsVersion).

参照アセンブリReference Assemblies

ツールセットで指定されている参照アセンブリは、アプリケーションの設計とビルドに役立ちます。The reference assemblies that are specified in the Toolset help you design and build an application. これらの参照アセンブリを利用すると、特定のターゲットのビルドが実行できるだけでなく、Visual Studio IDE のコンポーネントと機能を制限して、ターゲットと互換性のあるコンポーネントと機能のみを使用できるようになります。These reference assemblies not only enable a particular target build, but also restrict components and features in the Visual Studio IDE to those that are compatible with the target. 詳細については、「デザイン時のアセンブリの解決」を参照してください。For more information, see Resolving Assemblies at Design Time

ターゲットとタスクの構成Configuring Targets and Tasks

MSBuild のターゲットとタスクを、MSBuild のアウトプロセスで実行するように構成できます。これにより、開発時に実行しているコンテキストとは異なるコンテキストを対象とすることができます。You can configure MSBuild targets and tasks to run out-of-process with MSBuild so that you can target contexts that are considerably different than the one you are running on. たとえば、開発用コンピューターが .NET Framework 4.5 を備えた 64 ビット プラットフォームで動作している場合でも、32 ビットの .NET Framework 2.0 アプリケーションを対象とすることができます。For example, you can target a 32-bit, .NET Framework 2.0 application while the development computer is running on a 64-bit platform with .NET Framework 4.5. 詳細については、「ターゲットとタスクの構成」を参照してください。For more information, see Configuring Targets and Tasks.


ターゲット コンテキストに含まれないアセンブリを参照しようとすると、エラーが発生する場合があります。You might encounter errors if you try to reference an assembly that is not part of the target context. これらのエラーおよび対処方法の詳細については、「.NET Framework を対象とするエラーのトラブルシューティング」を参照してください。For more information about these errors and what to do about them, see Troubleshooting .NET Framework Targeting Errors.