Файлы решений и системы сборки не MS - PullRequest
0 голосов
/ 22 июня 2010

Visual Studio 2008 использует собственный формат файла решения, а различные системы сборки, такие как NAnt (и даже некоторые сложные случаи MSBuild), используют свои собственные. Как вы поддерживаете их синхронизацию? Есть ли лучшие практики по этому поводу? Любые автоматизированные скрипты, плагины ...?

Является ли целесообразным не создавать проекты под VS и использовать только внешнюю систему сборки?

Ответы [ 3 ]

0 голосов
/ 22 июня 2010

Использование NAnt для управления зависимостями сборки и проектами действительно проблематично, поскольку необходимо поддерживать зависимости как в сценарии сборки, так и в файле решения. Обычная вещь заключается в том, чтобы разработчики просто обновляли сценарии сборки при добавлении / удалении проектов в решения и обеспечили достаточное количество автоматических дымовых тестов, которые вы обнаружите, когда ожидаемые части не были добавлены.

Нетрудно написать инструмент для анализа файла решения и определения зависимостей проекта, но я не знаю ни одного из них, которые уже существуют.

Обратите внимание, что MSBuild - это то, что VS использует внутренне, и она может принять файл решения в качестве аргумента, если вы запустите его извне, он сгенерирует эквивалентный скрипт MSBuild из .sln и выполнит его (вы увидите .sln. файл кеша появляется).

0 голосов
/ 22 июня 2010

Ответ Паоло указывает в правильном направлении: Visual Studio создает файлы .sln, MSBuild может обрабатывать эти файлы решений, а с помощью задачи NAntContrib msbuild вы можете вызывать MSBuild из сценариев NAnt.легко.

0 голосов
/ 22 июня 2010

Подождите, вы делаете это неправильно;) VS использует формат файла SLN для определения настроек решения VS (xml), nAnt - это система сборки, которая использует формат файла BUILD (xml) для определения задач сборки, это не решение. MSbuild использует файлы PROJ (xml) для определения процесса сборки и задач. Что вы подразумеваете под "синхронизированными"? В моем случае, если в проекте произошли серьезные изменения, я просто отредактировал эти файлы сборки (мы используем nAnt, msbuild и т. Д.) И добавил правильное изменение.

...