TL; DR
Why would Unity think there is no pdb2mdb when using Visual Studio Tools for Unity (VSTU)?
Background
I import my Unity scripts as managed plugins (DLLS) from Visual Studio. That is, when I build my code in VS, I export the generated .dll and .pdb file to Unity, and the Visual Studio Tools for Unity (VSTU) extension handles converting the .pdb's to .mdb's so I can debug. Recently however, when I build my DLLs in VS and export them to Unity, the Unity console displays the following error:
Visual Studio Tools: failed to convert debug symbols, no pdb2mdb
pdb2mdb is the program within VSTU that converts .pdb to .mdb, and I have no idea why its supposedly missing all of a sudden. I've tried cleaning/rebuilding my VS solution, restarting VS and Unity, and repairing my VS installation, all without success. Even stranger, this behavior is happening on two different computers (albeit with all the same relevant software versions), which makes me nervous that the issue is somehow specific to my project. All the information that I've been able to find so far is several years old and has not helped.
My development environment:
Same thing happened to me after upgrading to Visual Studio 2017 15.5.0. Unfortunately there is no easy way to downgrade Visual Studio, so the best thing would be to wait for a fix.
EDIT:
Solution: Downgrade your visual studio to 15.0.
EDIT 2:
Sorry that it comes in phases, it's because I kept investigating it. Once you have Visual Studio 2017 15.0 installed (instructions above), you can now upgrade to 15.2 (which is much more stable), doing the following:
vs_community.exe --installChannelUri "file:///C:/VS2017/ChannelManifest.json" --channelUri "https://aka.ms/vs/15/release/channel"