Думаю, у меня проблемы с заменой 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>