texto - ¿Hay una extensión de archivo estándar para los archivos de MSBuild?
tipos de extensiones de archivos (4)
¿Existe una extensión de archivo estándar para los archivos de MSBuild que no son archivos de proyecto sino scripts de compilación más complejos?
Estaba pensando en .msbuild.proj para evitar confusiones con otros archivos .proj (que, en mi opinión, son archivos de MSBuild).
Lo más cercano a un estándar es el siguiente:
- .proj
- .targets
- . XXproj
Los archivos .targets son aquellos que se deben importar a otros archivos utilizando el elemento Importar . Como estos archivos son estrictamente reutilizables, en realidad no crean nada. Por lo general, les faltan las propiedades y los valores de los elementos para construir realmente algo.
Los archivos .proj son archivos creados que pueden ser creados por ellos mismos. Pueden importar archivos .targets.
.XXproj , por ejemplo .csproj o .vbproj son archivos que crean archivos que contienen un lenguaje específico. Por ejemplo, .csproj es para proyectos de C # y .vbproj para archivos de proyecto de VB.NET. Esta convención proviene de Visual Studio.
Recomiendo lo que VS hace:
.*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.
Solo usamos .build
ACTUALIZACIÓN: En retrospectiva, he actualizado la respuesta para incluir más convenciones. El crédito va para Sayed Ibrahim Hashimi y otros en este hilo.
.proj
Una convención popular para uso genérico. Comúnmente utilizado por un script de compilación principal.
Ejemplos:
build.proj
main.proj
company.product.build.proj
.targets
.targets
archivos .targets
son aquellos que se deben importar a otros archivos utilizando el elemento Importar. Como estos archivos son estrictamente reutilizables, en realidad no crean nada. Por lo general, les faltan las propiedades y los valores de los elementos para construir realmente algo.
Ejemplos:
Microsoft.Common.targets
Microsoft.CSharp.targets
Microsoft.Data.Entity.targets
.**proj
Convención específica de idioma donde **** representa el acrónimo corto de idioma.
Extensiones bien conocidas:
.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
Una hoja de propiedades del proyecto utilizada por los proyectos de Visual C ++ ( .vcxproj
).
Ejemplos:
Microsoft.Cl.Common.props
Microsoft.Cpp.CoreWin.props
Microsoft.Cpp.props
Microsoft.Link.Common.props
.tasks
Un archivo de inclusión común que un proyecto de MSBuild llamante debe importar. Contiene una lista de elementos <UsingTask>
.
Ejemplos:
Microsoft.Common.Tasks
MSBuild.ExtensionPack.tasks
.settings.targets
(Esta es una convención relacionada si no es estrictamente hablando una extensión de archivo).
Un archivo de inclusión común que un proyecto de MSBuild llamante debe importar. Contiene "varias propiedades relacionadas con las utilidades compartidas utilizadas durante los procesos de compilación e implementación, así como cualquier otra configuración común" ( Sayed Ibrahim Hashimi, 2009 ).
Ejemplos: