{"id":1513,"date":"2008-02-16T21:43:08","date_gmt":"2008-02-16T21:43:08","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/buckh\/2008\/02\/16\/setting-up-source-server-for-tfs-builds\/"},"modified":"2008-02-16T21:43:08","modified_gmt":"2008-02-16T21:43:08","slug":"setting-up-source-server-for-tfs-builds","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/buckh\/setting-up-source-server-for-tfs-builds\/","title":{"rendered":"Setting up Source Server for TFS Builds"},"content":{"rendered":"<p><a href=\"http:\/\/jelle.druyts.net\/default.aspx\">Jelle Druyts<\/a> has posted a document describing how to set up source server for Team Foundation Build.&nbsp; If you don&#8217;t know what it is, read the <a href=\"http:\/\/msdn.microsoft.com\/msdnmag\/issues\/06\/08\/UseTheSource\/default.aspx\">MSDN magazine article<\/a> that is the first link in his post.<\/p>\n<p>Check it out!<\/p>\n<blockquote>\n<p><a href=\"http:\/\/jelle.druyts.net\/2007\/12\/09\/SettingUpSourceServerForTFSBuilds.aspx\">Setting up Source Server for TFS Builds<\/a> <\/p>\n<p>I&#8217;ve read about <a href=\"http:\/\/msdn.microsoft.com\/msdnmag\/issues\/06\/08\/UseTheSource\/default.aspx\">symbol servers and source servers<\/a> before (in John Robbins&#8217; excellent <a href=\"http:\/\/www.amazon.com\/gp\/product\/0735622027\/ref=s9_asin_title_1\/104-9346732-5442324?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-2&amp;pf_rd_r=1VKRMDTB9NWV2YBQRDWA&amp;pf_rd_t=101&amp;pf_rd_p=278240301&amp;pf_rd_i=507846\">Debugging Microsoft .NET 2.0 Applications<\/a> book, for example, and also due to the recent news that <a href=\"http:\/\/weblogs.asp.net\/scottgu\/archive\/2007\/10\/03\/releasing-the-source-code-for-the-net-framework-libraries.aspx\">Visual Studio 2008 will support source-code debugging of the .NET Framework Libraries<\/a>), but never really got around to trying them out since they seemed pretty complex to set up. However, I&#8217;ve recently set up a source server on a Team Foundation build server (twice!), and my eyes have now gone wide open: anybody who references assemblies built by those TFS build servers can now seamlessly debug them.<\/p>\n<p>When an assembly is &#8220;source server-enabled&#8221;, the pdb file will contain the <strong>full path <\/strong>and the <strong>exact version <\/strong>of the file <strong>in source control <\/strong>that was used to build that assembly. If the debugger then enters a method, Visual Studio automatically downloads that correct file, places it in a local cache, and opens it for debugging. This is super sweet!<\/p>\n<p>Now the hard work was already done and <a href=\"http:\/\/tools.osherove.com\/CoolTools\/SourceServerSupportforTeamSystem\/tabid\/190\/Default.aspx\">published by Roy Osherove<\/a>, but there were some extra steps to take if you wanted to integrate this in a real Team Build (i.e. on the TFS build server instead of on a local machine) and it also lacked some additional information to get everything working. So I put together a full document that covers all aspects of setting up a source server, modifying the Team Build script, configuring the project files, and finally configuring the development machines.<\/p>\n<p>The full document (PDF) can be downloaded here, and you can read the one-page summary that briefly covers the required steps below. I cannot recommend setting up a source server enough, it&#8217;s free and takes less than an hour if you simply follow the procedure, and the advantages are &#8211; hopefully &#8211; obvious.<\/p>\n<p><a href=\"http:\/\/jelle.druyts.net\/2007\/12\/09\/SettingUpSourceServerForTFSBuilds.aspx\">more&#8230;<\/a><\/p>\n<\/blockquote>\n<div class=\"wlWriterSmartContent\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8980fe5e-1df5-4d00-9fde-91d3815268a5\" style=\"padding-right: 0px;padding-left: 0px;padding-bottom: 0px;margin: 0px;padding-top: 0px\">Technorati Tags: <a href=\"http:\/\/technorati.com\/tags\/team%20foundation%20server\" rel=\"tag\">team foundation server<\/a>,<a href=\"http:\/\/technorati.com\/tags\/team%20build\" rel=\"tag\">team build<\/a>,<a href=\"http:\/\/technorati.com\/tags\/source%20server\" rel=\"tag\">source server<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Jelle Druyts has posted a document describing how to set up source server for Team Foundation Build.&nbsp; If you don&#8217;t know what it is, read the MSDN magazine article that is the first link in his post. Check it out! Setting up Source Server for TFS Builds I&#8217;ve read about symbol servers and source servers [&hellip;]<\/p>\n","protected":false},"author":94,"featured_media":10268,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[6,7,8],"class_list":["post-1513","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-source-control","tag-team-build","tag-team-foundation"],"acf":[],"blog_post_summary":"<p>Jelle Druyts has posted a document describing how to set up source server for Team Foundation Build.&nbsp; If you don&#8217;t know what it is, read the MSDN magazine article that is the first link in his post. Check it out! Setting up Source Server for TFS Builds I&#8217;ve read about symbol servers and source servers [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/posts\/1513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/users\/94"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/comments?post=1513"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/posts\/1513\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/media\/10268"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/media?parent=1513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/categories?post=1513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/tags?post=1513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}