I'm currently troubleshooting an exception that is occurring at design time using the type provider. To troubleshoot, I simply open up another instance of Visual Studio and attach to the devenv.exe process and have it break when a CLR Exception is thrown via Debug > Exceptions. When an exception is thrown, it breaks. Hit cancel when it asks you for the location of the source file (I'm going to file a VS bug). It will then download the source file directly from the source server. In this case, it downloads the source code directly from GitHub. You can double-click up the call stack or debug into the source futher and it will download the additional source files. In this case, it downloaded source code files from both ApiaryProvider and FSharp.Data.
How to I enable source server support?
You just need to check the Enable source server support in Debugging > Options and set the path for Cache symbols in this directory. The path is used to save source files too, not just pdb (symbol) files. No symbol (pdb) servers need to be enabled since the pdb files are distributed with the NuGet packages.SourceLink to do Source Indexing
SourceLink is a project that I wrote that does source indexing in .NET. Both projects use the SourceLink.Fake library which allows you to do source indexing from FAKE build.fsx scripts. Including source indexed pdb files in your NuGet packages is a much better solution than creating and publishing a symbol package.- eliminates having to upload to a symbol server
- eliminates delays incurred using a symbol server
- eliminates having to configure symbol servers
- the pdb files will not get lost
- provides direct traceability to the actual source code provider
- works with private repositories like TFS
The main downside is that including pdb files will make your packages larger. I think the advantages greatly out way this cost. Now we just need to convince aspvnext of this. :)