First off a symbol server is a server which stores the symbols from a built binary so you don't have to ship out PDB files with your compiled code to be able to debug it. You can hook up visual studio to search a symbol server when you're debugging so that you can drop into code for something like a shared nuget package. Teamcity, as it turns out, has a plugin to support being a symbol server. Here is how you get started with it:
- Install the symbol server plugin by going to Administration > plugins > Browse plugins repository and search for
symbol
- On your build agents install the windows debugging tools which are shipped as part of the Windows SDK. For windows 10 you can grab it here: https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/ During the install you'll be prompted for which components you want to install and you can just turn off everything but the debugging tools.
- Remember to restart your build agents so they can register the debugging tools as being installed. You can check by going to the build agent in teamcity. Click on parameters ) In there, at the bottom, you should find an entry for the debugger )
- In the projects you want symbols for enable the symbol server feature )
- In the build artifacts you need to ensure that both the PDB and the associated EXE or DLL are selected as artifacts. )
That's pretty much it. In your build now you should see a few log messages to let you know that the symbol server indexing is working )
Now you can hook up Visual Studio to use this by going into settings and searching for symbols
then paste the URL of the teamcity server with /app/symbols
at the end of it into the box
)
Now when you're debugging in visual studio you'll have access to the symbols.