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

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

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

更新:回想起来,我已经更新了包含更多约定的答案。 在这个主题上,可以看到Sayed Ibrahim Hashimi和其他人。


.proj

通用的通用惯例。 通常由主构build脚本使用。

例子:

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

.targets

.targets文件是那些要使用Import元素导入到其他文件的文件。 由于这些文件是严格可重用的,所以它们实际上并不构build任何东西。 他们通常缺less实际构build任何东西的属性和项目值。

例子:

 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 ++项目( .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项目导入的常用包含文件。 包含“与构build和部署过程中使用的共享实用程序相关的各种属性以及任何其他常见设置” ( Sayed Ibrahim Hashimi,2009 )。

例子:

EntityFramework.settings.targets

Compiler.settings.targets

Library.Settings.targets

最接近有一个标准如下:

  1. .proj
  2. .targets
  3. 。 XXproj

.targets文件是那些要使用Import元素导入到其他文件的文件。 由于这些文件是严格可重用的,所以它们实际上并不构build任何东西。 他们通常缺less实际构build任何东西的属性和项目值。

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

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

我们只是使用.build

我推荐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.