UPDATE: In retrospect, I've updated the answer to include more conventions. Credit goes to Sayed Ibrahim Hashimi and others on this thread.
.proj
A popular convention for generic use. Commonly used by a main build script.
Examples:
build.proj
main.proj
company.product.build.proj
.targets
.targets
files are those which is meant to be imported into other files using the Import element. Since these files are strictly re-useable they don't actually build anything. They typically are missing the properties and item values to actually build anything.
Examples:
Microsoft.Common.targets
Microsoft.CSharp.targets
Microsoft.Data.Entity.targets
.**proj
Language specific convention where **** represents the language short acronym.
Well-known extensions:
.csproj | C#
.vbproj | VB.NET
.vcxproj | Visual C++
.dbproj | Database project
.fsproj | F#
.pyproj | IronPython
.rbproj | IronRuby
.wixproj | Windows Installer XML (WiX)
.vdproj | Visual Studio Deployment Project
.isproj | InstallShield
.pssproj | PowerShell
.modelproj | Modeling project
.props
A project property sheet used by Visual C++ projects (.vcxproj
).
Examples:
Microsoft.Cl.Common.props
Microsoft.Cpp.CoreWin.props
Microsoft.Cpp.props
Microsoft.Link.Common.props
.tasks
A common include file to be imported by a calling MSBuild project. Contains a list of <UsingTask>
elements.
Examples:
Microsoft.Common.Tasks
MSBuild.ExtensionPack.tasks
.settings.targets
(This is a related convention if not strictly-speaking a file extension.)
A common include file to be imported by a calling MSBuild project. Contains "various properties related to shared utilities used during the build and deployment processes as well as any other common settings" (Sayed Ibrahim Hashimi, 2009).
Examples: