Инструмент автоматизированной сборки с управляемым C ++ (.NET 2.0) - PullRequest
3 голосов
/ 30 декабря 2008

Я закладываю основу для автоматизированного процесса сборки и пытаюсь убедиться, что я иду по правильному пути. Наша кодовая база представляет собой смесь Managed / Unmanaged C ++. Управляемая часть находится в .NET 2.0, и все проекты являются частью решения Visual Studio 2005.

Сейчас я смотрю на NAnt, но не могу понять, как выполнить сборку. Когда я пытаюсь построить с использованием тега, он выдает ошибку:

Решения Microsoft Visual Studio.NET 2005 не поддерживаются.

Мне кажется, что я просто подхожу к этой проблеме с неправильной стороны. Может кто-нибудь указать мне правильный?

P.S. Я также хочу запустить doxygen как часть процесса сборки, но я предполагаю, что любой инструмент, который я выберу, позволит мне запустить его как команду оболочки как минимум.

Ответы [ 5 ]

3 голосов
/ 30 декабря 2008

Что не так с MSBuild? Все ваши проекты уже используют его, это хороший продукт и он бесплатный.

2 голосов
/ 03 января 2009

Мы использовали 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 %*
1 голос
/ 31 декабря 2008

Если подумать, 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.

0 голосов
/ 31 декабря 2008

Kinook предлагает хороший продукт под названием Visual Build , который может удовлетворить ваши потребности.

0 голосов
/ 30 декабря 2008

Вы можете использовать круиз-контроль с C ++:

http://confluence.public.thoughtworks.org/display/CC/UsingCruiseControlWithCplusPlus

Мы используем make / cron и некоторые самодельные скрипты для кроссплатформенных сборок, и это делает свою работу (включая запуск модульных тестов) - хотя отчётность немного скучная

...