Я закладываю основу для автоматизированного процесса сборки и стараюсь идти правильным путем. Наша кодовая база представляет собой смесь управляемого и неуправляемого C++. Управляемая часть находится в .NET 2.0, и все проекты являются частью решения Visual Studio 2005.
Сейчас я смотрю на NAnt, но не могу понять, как выполнить сборку. Когда я пытаюсь построить с помощью тега, он выдает ошибку:
Microsoft Visual Studio.NET 2005 solutions are not supported.
Мне кажется, я подхожу к этой проблеме не с той стороны. Может ли кто-нибудь указать мне правильный?
P.S. Я также хочу запустить doxygen как часть процесса сборки, но я предполагаю, что любой инструмент, который я выберу, позволит мне запускать его как минимум как команду оболочки.





Что не так с MSBuild? Все ваши проекты уже используют его, это хороший продукт, и он бесплатный.
Да, вы можете скомпилировать его с помощью NAnt, но для этого вам, возможно, придется создать файл сборки NAnt. MSBuild обычно может делать все, что умеет NAnt, и он уже используется вашей IDE и средой.
Позвольте мне поддержать призыв к MSBuild - надежный дизайн, хорошая MS и поддержка сообщества.
Можете ли вы загружать файлы с помощью MSBuild? Я знаю, что вы можете сделать это с помощью ANT ... Я не знаю, сможете ли вы сделать это с помощью NANT.
Вы можете использовать круиз-контроль с C++:
http://confluence.public.gotitworks.org/display/CC/UsingCruiseControlWithCplusPlus
Мы используем make / cron и некоторые самодельные скрипты для кроссплатформенных сборок, и он выполняет свою работу (включая выполнение модульных тестов) - хотя отчеты немного тупые.
Если подумать, MSBuild для VS2005 (8.0) не поддерживает полностью VC++. В зависимости от комбинации проектов могут возникнуть проблемы с использованием MSBuild, поскольку он напрямую обращается к VCBuild для собственных проектов (что можно увидеть в форумы msdn).
Итак, в зависимости от проекта, MSBuild или VCBuild должны помочь. Чтобы оставаться в рамках NAnt, можно использовать MSBuild или VCBuild напрямую, используя задачу exec.
Если в VS2008 (платформа .NET 3.5), MSBuild действительно имеет Задача VCBuild. Затем вы можете использовать последнюю (.86 beta 1 версию) NAnt в сочетании с NAntContrib (предоставляет задачу msbuild), чтобы получить поддержку 3.5.
Мне удалось собрать эти проекты с помощью MSBuild, хотя похоже, что файлы .vdproj не поддерживаются в 2005 году.
Да, MSBuild фактически обращается к VCBuild в VS2005. Обновлю ответ.
У Kinook есть хороший продукт под названием Визуальная сборка, который может удовлетворить ваши потребности.
Мы использовали NAnt с VS003, VS2005 и теперь с VS2008 (хотя VS2008 и .net 3.5 требует самой последней сборки NAnt 0.86+), поэтому, чтобы ответить на ваш первый вопрос, да, NAnt будет работать нормально.
Вот шаблон, с которого вы должны начать:
<?xml version = "1.0"?>
<project name = "Test Build" default = "build" xmlns = "http://nant.sf.net/release/0.85-rc4/nant.xsd">
<property name = "target" value = "rebuild" overwrite = "false" />
<property name = "configuration" value = "debug" overwrite = "false" />
<property name = "projectName" value = "MyProject.sln"/>
<target name = "build" description = "Build all targets.">
<call target = "build.MyProject"/>
</target>
<target name = "build.MyProject">
<exec program = "MSBuild" failonerror = "true" commandline = "/t:${target} /p:Configuration=${configuration} ${projectName}" />
</target>
</project>
И, наконец, убедитесь, что ваша среда настроена правильно при запуске сборки для VS2005:
build.bat:
call "C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86
"C:\Program Files\NANT\bin\NAnt.exe" -t:net-2.0 -logfile:buildlog.txt %*
Подходит ли MSBuild для этой ситуации? Можно ли вообще скомпилировать это приложение с помощью NAnt?