MSBuild .targets ファイル

MSBuild には、一般的なシナリオの項目、プロパティ、ターゲット、タスクを含む複数 .targets のファイルが含まれています。 これらのファイルは、保守を簡素化し読みやすくするために、ほとんどの Visual Studio プロジェクト ファイルに自動的にインポートされます。

SDK スタイルのプロジェクト (プロジェクト <Project Sdk="Microsoft.NET.Sdk">など) は、SDK を参照しないプロジェクトとは異なる方法でファイルをインポート .targets します。 SDK スタイルのプロジェクトの場合、インポートされた .targets ファイルは参照する SDK によって管理されるため、プロジェクト ファイルに表示されません。 ただし、SDK スタイルのプロジェクトは、ファイルのメイン本文の前後に標準インポートがある SDK スタイル以外のプロジェクトと同じであるため、標準.targetsファイルがそれらのプロジェクトにインポートされていると言っても正確です。

.NET SDK ターゲットは、Windows 上などC:\Program Files\dotnet\sdk\{version}\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk、.NET SDK と共にインストールされます。 SDK の完全な一覧とインポートする.targetsファイルについては、「.NET プロジェクト SDK」を参照してください

SDK を指定しないプロジェクトでは、通常、ビルド プロセスを定義するために 1 つ以上の .targets ファイルを明示的にインポートします。 たとえば、以前のバージョンの Visual Studio によって作成された C# プロジェクトは、Microsoft.Common.targets をインポートする Microsoft.CSharp.targets をインポート します。 C# プロジェクト自体は、そのプロジェクトに固有の項目とプロパティを定義しますが、C# プロジェクトの標準ビルド 規則はインポートされた .targets ファイルで定義されます。

この値は $(MSBuildToolsPath) 、これらの共通 .targets ファイルのパスを指定します。 .NET プロジェクトの場合、パスは通常 {Visual Studio installation folder}\MSBuild\Current\Bin\{architecture}です。

Note

独自のターゲットを作成する方法については、ターゲットに関する記事を参照してください。 Import 要素を使用してプロジェクト ファイルを他のプロジェクト ファイルに挿入する方法については、「Import 要素 (MSBuild)」と「方法:複数のプロジェクト ファイルで同じターゲットを使用する」を参照してください。

共通 .targets ファイル

.targets ファイル 説明
Microsoft.Common.targets Visual Basic および C# プロジェクトの標準ビルド プロセスの手順を定義します。

次のステートメントが含まれている Microsoft.CSharp.targetsMicrosoft.VisualBasic.targets ファイルによってインポートされます: <Import Project="Microsoft.Common.targets" />
Microsoft.CSharp.targets Visual C# プロジェクトの標準ビルド プロセスの手順を定義します。

Visual C# プロジェクト ファイル (.csproj) によってインポートされます。
Microsoft.VisualBasic.targets Visual Basic プロジェクトの標準ビルド プロセスの手順を定義します。

Visual Basic プロジェクト ファイル (.vbproj) によってインポートされます。

ファイルを開いて表示すると、他 .targets のファイル (通常 Microsoft.{language}.CurrentVersion.targetsはクロスターゲット シナリオ Microsoft.{language}.CrossTargeting.targets) のラッパーが薄いことがわかります。

Directory.Build.targets

Directory.Build.targets は、ディレクトリの下のプロジェクトをカスタマイズできるようにする、ユーザー定義のファイルです。 ImportDirectoryBuildTargets プロパティを false に設定しない限り、このファイルは Microsoft.Common.targets から自動的にインポートされます。 詳細については、「ビルドのカスタマイズ」を参照してください。

関連項目