У меня проблема с исходными файлами и символами с использованием ProGet и VS2017 / VS2019.
Мой сценарий следующий:
- Разработка тестовой сборки на моем компьютере
- Push-файлы модов на нашем git-сервере
- Получение мод-файлов в нашем TeamCity (2019.1)
- Сборка исходного кода в режиме Release, упаковка и публикация AssemblyTest.symbols.nupkg в ProGet (5.2.3)
- В VS2017 я создал тестовое консольное приложение, установил AssemblyTest с помощью Package Reference, и я попытался просто нажать F12 на классе в моем коде, чтобы показать исходный код или вступить в отладкуmode.
Я настроил VS2017 в соответствии с указаниями руководства здесь
Команда nuget pack была запущена с параметром командной строки -symbols и symbol.nupkg.был создан со следующей структурой
- пакет
- lib
- net472
- TestAssembly.dll
- TestAssembly.pdb
- TestAssembly.xml
- src
При нажатии F12 на TestClass в моем коде pdb был правильно загружен в
c: \ users \ me \ appdata \ local \ temp \ symbolcache \ testassembly.pdb \ bf5be5cd155e4400b9b18c0e1e6a05941 \ testassembly.pdb
и выбор элемента ReSharper формируют выпадающий список в окне вывода в Visual Studio Iсм.
PdbNavigator: Downloader: http://srv.symbolsource.org/pdb/Public/testassembly.pdb/bf5be5cd155e4400b9b18c0e1e6a05941/testassembly.pdb -> The remote server returned an error: (500) Internal Server Error.
--OK, it's MS symbol server
PdbNavigator: Downloader: http://myproget/symbols/dev/testassembly.pdb/bf5be5cd155e4400b9b18c0e1e6a05941/testassembly.pdb -> ok, 15.5 KB
-- OK, it's our ProGet server
PdbNavigator: Searching for 'TestAssembly.TestClass' type sources in C:\Users\me\AppData\Local\Temp\SymbolCache\TestAssembly.pdb\bf5be5cd155e4400b9b18c0e1e6a05941\TestAssembly.pdb
PdbNavigator: Downloader: http://myproget/source-files/dev/TestAssembly/1.0.0.10/TestClass.cs -> The remote server returned an error: (404) Not Found.
-- Here we come :(
PdbNavigator: No sources found in debugging information for 'TestAssembly.TestClass' in assembly 'TestAssembly, Version=1.0.0.10, Culture=neutral, PublicKeyToken=null'
В моей папке Symbolcache есть подпапка с этим путем
C: \ Users \ me \ AppData \ Local \ Temp \ SymbolCache \ src \ source-files \ dev \TestAssembly \ 1.0.0.10
, но вместо этого нет исходного файла.
Взглянув внутрь файла pdb, я нашел
SRCSRV: ini ------------------------------------------------
VERSION=2
INDEXVERSION=2
VERCTRL=http
SRCSRV: variables ------------------------------------------
SRCSRVVERCTRL=http
PGSERVER=http://myproget/source-files
PGFEED=dev
PGPKGID=TestAssembly
PGPKGVER=1.0.0.10
HTTP_EXTRACT_TARGET=%pgserver%/%pgfeed%/%pgpkgid%/%pgpkgver%/%var2%
SRCSRVTRG=%http_extract_target%
SRCSRVCMD=
SRCSRV: source files ---------------------------------------
c:\buildagent\work\b5cfc05c815c43d9\testassembly\testclass.cs*TestClass.cs
SRCSRV: end ------------------------------------------------
Итак, мой вопрос: как я могу правильно загрузить исходный файл из ProGet?Что не так в моем сценарии?
Спасибо!
Фабрицио