Как отладить TFS онлайн Build, Не удалось найти файл? - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь построить решение на TFS Online Build, решение успешно собрано на всех компьютерах членов команды без предварительной настройки, но, к сожалению, его не удастся построить на "TFS Online build".

theсообщение об ошибке из консоли сборки tfs:

##[error]C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets(2603,5): Error : Copying file bin\MainConfiguration.config to obj\Release\Package\PackageTmp\bin\MainConfiguration.config failed. Could not find file 'bin\MainConfiguration.config'.

enter image description here У меня есть файл MainConfiguration.config внутри основного проекта и событие AfterBuild в Admin.API ​​для копирования файла конфигурации из основногопроецируйте в папку / bin в проекте Admin.API, и каждая мысль отлично работает на машине членов команды

 <Target Name="MainConfigurationIntegration_config_AfterBuild" AfterTargets="AfterBuild" Condition="Exists('..\Core\Config\MainConfiguration.$(Configuration).config')">
<Copy SourceFiles="..\Core\Config\MainConfiguration.$(Configuration).config" DestinationFolder="$(OutputPath)" />
<Move SourceFiles="$(OutputPath)MainConfiguration.$(Configuration).config" DestinationFiles="$(OutputPath)MainConfiguration.config" />

Я не уверен, является ли это проблемой или в каком-то другом месте,где и как начать отладку?

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Как отладить TFS в режиме онлайн сборки, Не удалось найти файл?

По ошибке:

Ошибка: копирование файла bin\MainConfiguration.config в obj\Release\Package\PackageTmp\bin\MainConfiguration.config failed.Не удалось найти файл 'bin \ MainConfiguration.config'.

Похоже, что вы публикуете веб-проект как пакет, когда возникает эта ошибка.

Итак, для устранения этой проблемыВо-первых, нам нужно убедиться, что пользовательская цель выполнена успешно, это означает, что MainConfiguration.$(Configuration).config скопирован из проекта core и переименуйте его в MainConfiguration.config.

Вы можете добавить задачи Копировать файлыЗадача и задача Опубликовать артефакты сборки в конвейере сборки для вывода каталога сборки, чтобы мы могли проверить, успешно ли скопировано MainConfiguration.$(Configuration).config.

Тогда вам следует убедиться, чтоЗадача построения и публикации в том же задании агента , в противном случае задача построения и публикации может выполняться на разных агентах, ваша пользовательская цель не будет выполнена.

Поскольку у нас нет больше информации, напримеропределение сборки о получении источника, задаче сборки, публикации, мы не можем дать вам точное местоположение проблемы, если приведенная выше информация не может помочь вам решить эту проблему, пожалуйста, поделитесь дополнительной информацией aboно это.

Надеюсь, это поможет.

0 голосов
/ 07 июня 2019

проблема была в том, что msBuild на tfs online пытается скопировать файл bin\MainConfiguration.config в obj\Release\Package\PackageTmp\bin\MainConfiguration.config перед тем как скопировать его в bin\MainConfiguration.config, поэтому я отредактировал целевое действие копирования и заставил его запускаться до процесса сборки так:

  <Target Name="MainConfigurationIntegration_config_AfterBuild" BeforeTargets="BeforeBuild" Condition="Exists('..\Core\Config\MainConfiguration.$(Configuration).config')">
    <Copy SourceFiles="..\Core\Config\MainConfiguration.$(Configuration).config" DestinationFolder="$(OutputPath)" />
    <Move SourceFiles="$(OutputPath)MainConfiguration.$(Configuration).config" DestinationFiles="$(OutputPath)MainConfiguration.config" />
  </Target>

и все работает

...