Существует ли стандартное расширение для файлов MSBuild? - PullRequest
65 голосов
/ 05 января 2010

Существует ли стандартное расширение для файлов MSBuild, которые не являются файлами проекта, а являются более сложными сценариями сборки?

Я думал о .msbuild.proj, чтобы избежать путаницы с другими файлами .proj (которые, как я знаю, на самом деле являются файлами MSBuild).

Ответы [ 4 ]

79 голосов
/ 06 января 2010

ОБНОВЛЕНИЕ: В ретроспективе я обновил ответ, чтобы включить больше соглашений. Кредит идет к Сайеду Ибрагиму Хашими и другим по этой теме.


.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 ++ (.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. Содержит «различные свойства, относящиеся к общим утилитам, используемым во время процессов сборки и развертывания, а также любые другие общие настройки» ( Сайед Ибрагим Хашими, 2009 ).

Примеры:

EntityFramework.settings.targets

Compiler.settings.targets

Library.Settings.targets

14 голосов
/ 07 января 2010

Наиболее близким к стандарту является следующее:

  1. .proj
  2. .targets
  3. .XXproj
Файлы

.targets - это файлы, которые предназначены для импорта в другие файлы с использованием элемента Import . Поскольку эти файлы строго повторно используются, они ничего не создают. Обычно им не хватает свойств и значений элементов для построения чего-либо.

Файлы

.proj - это созданные файлы, которые можно создавать самостоятельно. Они могут импортировать файлы .targets.

.XXproj , например .csproj или .vbproj - это файлы, которые создают файлы, содержащие определенный язык. Например .csproj для проектов C # и .vbproj для файлов проектов VB.NET. Это соглашение взято из Visual Studio.

5 голосов
/ 05 января 2010

Мы просто используем .build

2 голосов
/ 18 июля 2011

Я рекомендую, что 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...