MSBuild文件是否有标准文件扩展名?

时间:2010-01-05 17:04:54

标签: msbuild

MSBuild文件是否有标准文件扩展名,而不是项目文件,而是更复杂的构建脚本?

我在想.msbuild.proj以避免与其他.proj文件混淆(我知道它实际上是MSBuild文件)。

4 个答案:

答案 0 :(得分:78)

更新: 回想起来,我已更新答案以包含更多约定。此信息将转至Sayed Ibrahim Hashimi以及此线程中的其他人。


.proj

通用的流行惯例。通常由主构建脚本使用。

示例:

build.proj
main.proj 
company.product.build.proj

.targets

.targets文件是那些使用Import元素导入其他文件的文件。由于这些文件严格可重用,因此实际上并不构建任何内容。它们通常缺少实际构建任何内容的属性和项值。

示例:

Microsoft.Common.targets
Microsoft.CSharp.targets
Microsoft.Data.Entity.targets

.**proj

语言特定约定,其中****代表语言的简短缩写。

众所周知的扩展:

.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

Visual C ++项目使用的

A project property sheet.vcxproj)。

示例:

Microsoft.Cl.Common.props
Microsoft.Cpp.CoreWin.props
Microsoft.Cpp.props
Microsoft.Link.Common.props

.tasks

由调用的MSBuild项目导入的常见包含文件。包含<UsingTask>元素列表。

示例:

Microsoft.Common.Tasks
MSBuild.ExtensionPack.tasks

.settings.targets

(如果不严格地说是文件扩展名,这是一个相关的约定。)

由调用的MSBuild项目导入的常见包含文件。包含“与构建和部署过程中使用的共享实用程序相关的各种属性以及任何其他常见设置”Sayed Ibrahim Hashimi, 2009)。

示例:

EntityFramework.settings.targets

Compiler.settings.targets

Library.Settings.targets

答案 1 :(得分:14)

最接近标准如下:

  1. .proj
  2. .targets
  3. .XXproj
  4. .targets 文件是指使用Import element导入其他文件的文件。由于这些文件是严格可重用的,因此它们不构建任何东西。它们通常缺少实际构建任何内容的属性和项值。

    .proj 文件是创建的文件,可以自行构建。他们可能会导入.targets文件。

    .XXproj ,例如,.csproj或.vbproj是构建包含特定语言的文件的文件。例如.csproj用于C#项目,而.vbproj用于VB.NET项目文件。此约定来自Visual Studio。

答案 2 :(得分:4)

我们只使用.build

答案 3 :(得分:2)

我推荐VS做的事情:

.*proj for project files --- msbuild.exe will find them automatically if they match this pattern
.targets for build process --- generally imported towards the end of your project
.props for shared settings --- generally imported towards the top of your project. C++ (*.vcxproj) files use these, and they will doubtless get added to VB and C# default project files at some point.