У меня есть некоторые проблемы с заменой TeamCity MSBuild, я думаю.
Я попытался скомпилировать проект Delphi 2010 (совместимый с MSBuild) с помощью NAnt, используя задачу MSBuild (NAnt Contrib).1004 * Все работает нормально, если я делаю это без 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>