TeamCity: Не удалось обнаружить цель в проекте MSBuild

Думаю, у меня проблемы с заменой TeamCity MSBuild.

Я пытался скомпилировать проект Delphi 2010 (совместимый с MSBuild) с NAnt, используя задачу MSBuild (NAnt Contrib).

Все работает нормально, если я делаю это без TeamCity на консоли.

Если я попробую с TeamCity, я получаю следующее сообщение об ошибке:

Failed to detect default target(s) in the project file  F:\CI\TeamCity\TeamCity\buildAgent\work\892195dab42324a3\build\src.temp\TestProject\Test.dproj.  Please define targets explicitly in the build configuration options on  TeamCity Web UI. Project does not define DefaultTargets or  InitialTargets.

Я пытался явно установить цель с помощью переключателя MSBuild / target указывая на цель Rebuild. Пока не повезло.

Есть предложения? Заранее спасибо.

Изменить:

    <foreach item="File" property="iterator.dproj">
        <in>
            <items>
                <include name="${src.temp}\**\*.dproj" />
            </items>
        </in>
        <do>
            <msbuild project="${iterator.dproj}">
                <arg value="/target:Rebuild" />                 
            </msbuild>
        </do>
    </foreach>

Файл *. Файл dproj - это стандартный файл проекта delphi 2010 (он преобразован с помощью xsl, но по-прежнему является действующим файлом проекта)

Edit2:

Благодаря s. ermakovich, я заменил задачу msbuild (из NAnt contrib) на прямой вызов NAnt, который не выдает ошибку на сервере TeamCity. Похоже, TeamCity заменяет только вызов задачи NAnt contrib msbuild. : -)

    <property name="msbuild.exe" value="${framework::get-framework-directory(nant.settings.currentframework)}\msbuild.exe" />
    <foreach item="File" property="iterator.dproj">
        <in>
            <items>
                <include name="${src.temp}\**\*.dproj" />
            </items>
        </in>
        <do>
            <exec program="${msbuild.exe}">
                <arg path="${iterator.dproj}" />
            </exec>
        </do>
    </foreach>
6
задан Dennis 1 November 2010 в 10:31
поделиться