Шаг «Источники индексов и публикация символов» не публикует символы в TFS 2015

У меня проблема с публикацией символов (перемещение в общий каталог на сервере символов) с использованием шага «Источники индексов и публикация символов» в определении сборки TFS 2015.

У меня есть простой проект Hello World - одна dll, одна pdb на выходе и простое определение сборки TFS 2015. Определение сборки состоит из двух шагов.

  1. VS Build — решение сборки \**\*.sln (с конфигурацией по умолчанию)
  2. Источники индексов и символы публикации — Путь к символам публикации: \\sw\\symbols (с конфигурацией по умолчанию и символами общего каталога на ПК с ПО). Это расположение нормально работает с определениями сборки XAML!

Когда я ставлю новую сборку в очередь, все выглядит нормально (переменные имеют правильное содержимое и т. д.), но общая папка на сервере символов не содержит нужного файла pdb.

Пожалуйста, проверьте следующий (усеченный) журнал сборки TFS 2015. Спасибо.

Starting: Build  
Starting: Get sources  
Checked out branch refs/heads/master for repository 1400666 at commit bd3b859e312be62d8af976f233f7407863ba33b8
Running tasks  

Starting task: Build solution \**\*.sln  
Build succeeded.  
    0 Warning(s)
    0 Error(s)
Time Elapsed 00:00:00.60  
Finishing task: VSBuild  

Starting task: Publish symbols path: \\sw\\symbols  
Executing the powershell script: C:\BuildAgent\tasks\PublishSymbols\1.0.4\PublishSymbols.ps1  
Find-Files -SearchPattern **\bin\**\*.pdb -RootFolder C:\BuildAgent\_work\57cae171\1400666  
>pdbFile= C:\BuildAgent\_work\57cae171\1400666\HelloWorld\bin\Debug\HelloWorld.pdb  
>Found 1 files to index...  
Invoke-IndexSources -RepositoryEndpoint repositoryEndpoint -SourceFolder C:\BuildAgent\_work\57cae171\1400666 -PdbFiles pdbFiles  
>Invoke-PublishSymbols -PdbFiles pdbFiles -Share \\sw02\\symbols -Product Build -Version 20160108.7 -MaximumWaitTime 7200000 -MaximumSemaphoreAge 1440 -ArtifactName Symbols_debug  
Start: AssociateArtifact  
Associated artifact 15 with build 986  
End: AssociateArtifact  
Finishing task: PublishSymbols  

Worker Worker-e99a050a-0cc5-477e-bf6f-cd374173434f finished running job e99a050a-0cc5-477e-bf6f-cd374173434f  
Finishing Build  

ПРИМЕЧАНИЕ: публиковать символы с помощью symstore.exe (в моем скрипте ps1 на этапе сборки powershell) работает.


person honzakuzel1989    schedule 08.01.2016    source источник
comment
Судя по логам, файл символов был опубликован в папку \\sw02\symbols. Когда сборка vNext публикует символы в папке, она создает в ней папку типа 000Admin и записывает информацию о добавленном файле в папку. Можете ли вы проверить, есть ли он?   -  person Eddie Chen - MSFT    schedule 21.01.2016
comment
Нет. Папка символов по-прежнему пуста.   -  person honzakuzel1989    schedule 21.01.2016
comment
Вы в состоянии решить это. Для меня эта задача работает нормально, но когда я отлаживаю как потребитель, он показывает местоположение D\1\a... и говорит, что файл не найден в локальной системе. После этой задачи, как вы отлаживаете. Я использовал это docs.microsoft.com/en-us/azure/devops/artifacts/symbols/   -  person Ziggler    schedule 20.03.2019
comment
Вы должны указать в своем вопросе, что большинство очевидных вещей были опробованы и проверены. Я удивлен, что никто не предложил переустановить.   -  person Christian    schedule 26.11.2020


Ответы (2)


Я видел ту же проблему, когда путь для публикации символов (ваш общий каталог) имеет «\» в конце. У меня был установлен путь к чему-то вроде \bldmachine\final\symbols\, и все вроде бы прошло успешно, но символы не были опубликованы. Только когда я удалил завершающий «\», он начал работать. Окончательный рабочий путь был похож на \bldmachine\final\symbols

person Randy Gamage    schedule 15.01.2016
comment
Это, наверное, не мой случай. Я использую путь, например \\sw02\symbols, но публикация все еще не работает. Кстати, может ли путь к общей папке не начинаться с двойной косой черты? В вашем случае \\bldmachine\final\symbols? - person honzakuzel1989; 18.01.2016

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

person Eddie Chen - MSFT    schedule 22.01.2016
comment
Нет, у меня нет лишних пробелов в пути к символу. - person honzakuzel1989; 22.01.2016
comment
@honza Тогда существует ли папка с символами в \\ sw02? Как я заметил, задача может публиковать файлы только по существующему пути, но не может создавать папку. - person Eddie Chen - MSFT; 22.01.2016
comment
Да, папка с символами существует! Я могу подключить машину co sw02 (например, через mstsc) и изучить папку с символами. Также я могу показывать символы \\sw02\ в браузере. - person honzakuzel1989; 22.01.2016
comment
@honza Вы внесли какие-то изменения в журнал ошибок? Это \\sw здесь: Путь для публикации символов: \\sw\\symbols, но \\sw02 -Share \\sw02\\symbols -Product Build здесь. - person Eddie Chen - MSFT; 22.01.2016
comment
Мне очень жаль! У меня есть две общие папки \\sw\symbols и \\sw02\symbols (sw02 - машина для сборки). У меня такая же проблема с обоими местами! - person honzakuzel1989; 22.01.2016
comment
Лишние места? Проверить путь? Почему никто не предлагает перезагрузить и переустановить Windows, а мы делаем совершенно случайные предложения? Вы много ... - person Christian; 26.11.2020