#msbuild #teamcity
#msbuild #teamcity
Вопрос:
У меня есть следующий XML-файл:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="DeployPrototype" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<dotCover>......pluginsdotCoverbindotCover.exe</dotCover>
</PropertyGroup>
<ItemGroup>
<SourceFiles Include="..PrototypeSiteSiteBinTestServerDefault.html;..PrototypeSiteSiteBinTestServerSite.xap"/>
<DestinationFolder Include="C:inetpubwwwrootProjectNamePrototype"/>
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="../ProjectName.Web.sln" Properties="Configuration=testserver" />
<Message Text="Building ProjectName solution" Importance="high" />
</Target>
<Target Name="TeamCity" DependsOnTargets="Build">
<Message Text="Before executing MSpec command" Importance="low" />
<Exec Command="..packagesMachine.Specifications.0.4.10.0toolsmspec-clr4.exe ..HostsProjectName.Hosts.Web.SpecsbinProjectName.Hosts.Web.Specs.dll --teamcity" />
<Message Text="Ran MSpec" Importance="low" />
<Exec Command="$(dotCover) c TestServerBuildAndRunTestsOnly_DotCover.xml" />
<Message Text="##teamcity[importData type='dotNetCoverage' tool='dotcover' path='buildcoverage.xml']" Importance="high" />
</Target>
<Target Name="DeployPrototype" DependsOnTargets="TeamCity">
<Message Text="Before executing copy, source files are: @(MySourceFiles) and destination folder is: @(DestinationFolder)" Importance="low" />
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="@(DestinationFolder)"
/>
<Message Text="Atter executing copy" Importance="low" />
</Target>
</Project>
Все в этом скрипте работает, кроме копирования файлов. Сообщения, которые я поместил в раздел копирования, не отображаются в полном журнале в TeamCity. В настройках конфигурации последнего я поставил «DeployPrototype» в качестве своей цели.
Почему операция копирования не выполняется?
Комментарии:
1. Добавьте /v: d или / v: diag к аргументам MSBuild, и на выходе будет указано
2. Проблема, вероятно, в MySourceFiles vs SourceFiles tho7ugh
3. @Ruben — Похоже, моя глупость не знает границ! Я не решаюсь сказать «хорошее место».
4. @DavidS: Суть в том, что ключом ко всем этим проблемам является заклинивание в a / v: d или / v: diag для всех проблем MSBuild, будь то в TeamCity (или где угодно)
5. @Ruben — Спасибо. Я пытаюсь проверить, работает ли скрипт сейчас, и я добавил параметры. Однако один из других разработчиков внес некоторые изменения, что означает, что я даже не могу создать решение и, следовательно, я даже не добираюсь до точки копирования. Я обновлю соответствующим образом
Ответ №1:
Для данной проблемы, связанной с тем, что MSBuild не работает в TeamCity, ответ почти всегда включает добавление /v:d
(Каждый выполненный шаг и информация о пропущенных шагах) или /v:diag
(Подробные плюс дампы ItemGroup
файлов и т.д. в целях диагностики) в аргументы MSBuild и выходные данные сборки, управляемые TeamCity, будут содержать ответ.