In April of 2011, Buck Hodges stated that "we are starting to have more and more tools that need access to the symbol file information and the original source code that was used for compilation". Visual Studio Debugging, Remote Debugger, IntelliTrace, Visual Studio Profiler, and WinDBG all use srcsrv.dll to obtain the source. It "supports HTTPS sites protected by smartcards, certificates, and regular logins and passwords."
SourceLink can be used to source index TFS Git code and TFS TFVC code. TFS 2013 does not yet support source indexing TFS Git code. SourceLink provides a solution for doing so. Traditional TFS TFVC source indexing requires tf.exe to be run each time a source file is needed. Using web links for source indexing is better than having to run an executable to obtain the source.
SourceLink is perfect for open source .NET projects. If you source index your pdb files using SourceLink and ship them in the NuGet packages, users of your project will be able to download the exact source on demand while debugging. SourceLink works with GitHub, Bitbucket, Google Project Hosting, and CodePlex. Git on CodePlex is the only option known not to work yet, so vote here.
SourceLink will create a text file next to the .pdb with an extension of .pdb.srcsrv and then run pdbstr.exe to do the source indexing. pdbstr.exe ships with TFS and Debugging Tools for Windows.
SourceLink.Fake is a tools only NuGet package. It is an add-on for FAKE - F# Make. Examples:
- blog post Source Link to CodePlex
- SourceLink build.fsx
- FSharp.Data build.fsx
Please see my blog posts tagged with SourceLink for more details. http://blog.ctaggart.com/search/label/SourceLink
FAKE builds can be integrated with several build servers. SourceLink.Fake enables integration with TFS and Visual Studio Online. You can code your TFS builds in F# instead of XAML. A helper library is provided that gives easy access to the entire TFS API from F# and F# Interactive.
- Use stackoverflow with a sourcelink tag for questions.
- Bugs can be logged in the GitHub issue tracker.
- 2014-01 SourceLink.Fake 0.3.x
- FAKE integration
- TFS integration
- pdbstr.exe used instead of modifying pdb directly
- SourceLink.Build put aside for now in favor of SourceLink.Fake
- 2013-07 SourceLink.Build 0.2.x
- SourceLink distributed using NuGet 2.5 MSBuild Targets
- verify Git checksums using LibGit2Sharp