Копирование файлов с помощью MSBuild в TeamCity

#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, будут содержать ответ.