Система сборки с текстовыми файлами
От: Abyx Россия  
Дата: 15.04.15 15:45
Оценка: +1 -2 :))
Я слишком долго писал на С++, и привык к тому что в системе сборки используются текстовые файлы типа CMakeLists.txt или something.gyp.
Эти файлы не страшно положить в Git-репозиторий, и потом их удобно мержить.

А в .NET мире используются machine-generated sln/csproj, и мне как-то стремно класть их в Git. (А уж как мержить этот xml — вообще не представляю)
Я посмотрел на NAnt — кажется что он помер.
FAKE выглядит круто (люблю F#), но он в основном заточен на компиляцию тех же sln/csproj

Я конечно могу использовать CMake, но вдруг для .NET есть что-то свое, родное.
In Zen We Trust
Re: Система сборки с текстовыми файлами
От: vmpire Россия  
Дата: 15.04.15 16:08
Оценка:
Здравствуйте, Abyx, Вы писали:

A>Я слишком долго писал на С++, и привык к тому что в системе сборки используются текстовые файлы типа CMakeLists.txt или something.gyp.

A>Эти файлы не страшно положить в Git-репозиторий, и потом их удобно мержить.
.csproj вполне можно модифицировать руками. Например, прочитать дополнительные файлы из внешнего файла.
Но непонятно, какую цель вы преследуете. Мёржить .csproj можно вполне, это не страшно.
Re: Система сборки с текстовыми файлами
От: Shmj Ниоткуда  
Дата: 15.04.15 16:14
Оценка:
Здравствуйте, Abyx, Вы писали:

A>А в .NET мире используются machine-generated sln/csproj, и мне как-то стремно класть их в Git. (А уж как мержить этот xml — вообще не представляю)

A>Я посмотрел на NAnt — кажется что он помер.
A>FAKE выглядит круто (люблю F#), но он в основном заточен на компиляцию тех же sln/csproj

sln текстовый. csproj имеет довольно простой формат (1-2 уровня) и мерджится, как правило, без проблем.
Re: MSBuild
От: Qbit86 Россия
Дата: 15.04.15 18:55
Оценка: +1
Здравствуйте, Abyx, Вы писали:

A>А в .NET мире используются machine-generated sln/csproj, и мне как-то стремно класть их в Git.


Они не machine generated. Однократное создание шаблона визардом не значит, что они будут перекомпилироваться постоянно. При добавлении ссылок и изменении конфигурации в IDE эти файлы меняются вполне предсказуемым и описанным в документации способом, то же самое можно длеать и вручную.

A>Я конечно могу использовать CMake, но вдруг для .NET есть что-то свое, родное.


Для .NET родным является MSBuild. Не только в Visual Studio, но и в MonoDevelop и Xamarin Studio на всех операционках. В Visual Studio эта же система сборки используется и для C++.

A>Эти файлы не страшно положить в Git-репозиторий


csproj- и vcxproj-файлы — это скрипты MSBuild, их нужно класть в репозиторий (если только vcxproj-скрипты не производные от другой системы сборки типа CMake). У sln-файлов формат другой, их в репозиторий можно и не класть, они не особо нужны для автоматической сборки. Но обычно кладут.

A>А уж как мержить этот xml — вообще не представляю


https://msdn.microsoft.com/en-us/library/dd393574.aspx
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: MSBuild
От: Abyx Россия  
Дата: 16.04.15 12:53
Оценка: -1
Здравствуйте, Qbit86, Вы писали:

A>>А в .NET мире используются machine-generated sln/csproj, и мне как-то стремно класть их в Git.


Q>Они не machine generated. Однократное создание шаблона визардом не значит, что они будут перекомпилироваться постоянно. При добавлении ссылок и изменении конфигурации в IDE эти файлы меняются вполне предсказуемым и описанным в документации способом, то же самое можно длеать и вручную.


но руками-то их не написать. один-два файла еще можно добавить, а вот новый проект добавить — только через ИДЕ.

причем если что-то писать/менять руками, надо использовать то же форматирование что и в IDE, иначе она всё поменяет
In Zen We Trust
Re[3]: MSBuild
От: vmpire Россия  
Дата: 16.04.15 13:13
Оценка: +2
Q>>Они не machine generated. Однократное создание шаблона визардом не значит, что они будут перекомпилироваться постоянно. При добавлении ссылок и изменении конфигурации в IDE эти файлы меняются вполне предсказуемым и описанным в документации способом, то же самое можно длеать и вручную.

A>но руками-то их не написать. один-два файла еще можно добавить, а вот новый проект добавить — только через ИДЕ.

Во-первых, написать их руками можно. Только нужно знать, какие свойства нужно там задать. Но это нужно знать в любой системе билда.
Во-вторых — а это обязательно, писать руками с нуля? Если да — можно один раз сделать пустой проект и сохранить как образец, если IDE религия не позволяет использовать.

A>причем если что-то писать/менять руками, надо использовать то же форматирование что и в IDE, иначе она всё поменяет

Вот честно, сколько не менял файлы проектов — ни разу не было надобности менять стндартное форматирование.
Если вам это уж очень принципиально — сделайте определение проекта в своём отдельном файле и импортируйте в csproj.
Я так не пробовал, но, по идее, должно работать.

Мне кажется, вы решаете не ту задачу, о которой задаёте вопрос.
По заданному вопросу: в репозиторий проект класть не страшно, мёрджится он тоже легко.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.