MSBuild文件是否有标准文件扩展名,而不是项目文件,而是更复杂的构建脚本?
我在想.msbuild.proj以避免与其他.proj文件混淆(我知道它实际上是MSBuild文件)。
答案 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
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)。
示例:
答案 1 :(得分:14)
最接近标准如下:
.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.