MSBuild .targets files
MSBuild includes several .targets files that contain items, properties, targets, and tasks for common scenarios. These files are automatically imported into most Visual Studio project files to simplify maintenance and readability.
Projects typically import one or more .targets files to define their build process. For example a C# project created by Visual Studio will import Microsoft.CSharp.targets which imports Microsoft.Common.targets. The C# project itself will define the items and properties specific to that project, but the standard build rules for a C# project are defined in the imported .targets files.
The $(MSBuildToolsPath)
value specifies the path of these common .targets files. If the ToolsVersion
is 4.0, the files are in the following location: <WindowsInstallationPath>\Microsoft.NET\Framework\v4.0.30319\
Note
For information about how to create your own targets, see Targets. For information about how to use the Import
element to insert a project file into another project file, see Import element (MSBuild) and How to: Use the same target in multiple project files.
Common .targets files
.targets file | Description |
---|---|
Microsoft.Common.targets | Defines the steps in the standard build process for Visual Basic and C# projects. Imported by the Microsoft.CSharp.targets and Microsoft.VisualBasic.targets files, which include the following statement: <Import Project="Microsoft.Common.targets" /> |
Microsoft.CSharp.targets | Defines the steps in the standard build process for Visual C# projects. Imported by Visual C# project files (.csproj), which include the following statement: <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
Microsoft.VisualBasic.targets | Defines the steps in the standard build process for Visual Basic projects. Imported by Visual Basic project files (.vbproj), which include the following statement: <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> |
Directory.Build.targets
Directory.Build.targets is a user-defined file that provides customizations to projects under a directory. This file is automatically imported from Microsoft.Common.targets unless the property ImportDirectoryBuildTargets is set to false. For more information, Customize your build.