Do you have to deploy the .pdb file with compiling under release?
Why does it even compile a .pdb when you do a release build anyway?
No, you don't ship the .pdb files. They are generated because sometimes it's helpful to be able to debug a release build.
If you want, you can also turn the PDB file generation off in the compile options.
You don't have to deploy and distribute the PDB files along with your binaries.
However, I suggest that you keep them (and eventually index them) to be able to analyze any dump files that clients, QA, and support people send you. This way, you will be able to have comprehensible stack traces and symbol information.
Nope. You don't need to distribute them. It'll help with debugging (or I should say it will make debugging possible for sane people).
You can also turn off or adjust the 'level' of symbols generated in Visual Studio -- just go to Project Properties / 'Build' tab / 'Advanced' -- and make adjustments to the 'Debug info' field.
a PDB file contains information about names of functions. You need it to be able to get a stack trace. It can also contain information about mapping it to sources. Sometimes you might want to ship your release version, and still need to analyze a crash that occurs on the client side. For that, the PDB is needed. The PDB when compiling for release should in theory have less information than when compiling for debug.