"There are four areas to look at:
Work Item notification mails (has already been discussed here)
Build notification mails
Check-in notification mails
Mails sent by Team Explorer (feature of TFS 2008 SP1)
Area 1 is part of a separate blog post, for Area 2 there are currently no equivalent steps (as stated in KB956761)."
I just couldn't live with it so I made it work, like this in BuildCompletionEvent2.xsl:
1: <div class="Title">
2: <xsl:call-template name="link">
3: <xsl:with-param name="format" select="'html'"/>
4: <xsl:with-param name="embolden" select="'true'"/>
5: <xsl:with-param name="fontSize" select="'larger'"/>
6: <xsl:with-param name="link" select="concat(substring-before(Url,':8080/Build/Build.aspx?artifactMonike'),':8090/UI/Pages/Build/Details.aspx?builduri=vstfs%3A%2F%2F%2FBuild%2FBuild%2F',substring-after(Url,'artifactMoniker='))"/>
7: <xsl:with-param name="displayText" select="Title"/>
8: </xsl:call-template>
9: </div>
Where the point of the matter is line 11. The change was inspired by the original post by Neno and a simple fix.
To add even more we even changed it a bit more to include a link to a report over the failing tests for the last 72 hours. I am not showing the report part, but the take-away is the inclusion of the link:
1: <xsl:if test="StatusCode != 'Succeeded'">
2: <tr>
3: <td class="PropName">Build Log Location: </td>
4: <td class="PropValue">
5: <xsl:call-template name="link">
6: <xsl:with-param name="format" select="'html'"/>
7: <xsl:with-param name="embolden" select="'false'"/>
8: <xsl:with-param name="link" select="LogLocation"/>
9: <xsl:with-param name="displayText" select="LogLocation"/>
10: </xsl:call-template>
11: </td>
12: </tr>
13: <tr>
14: <xsl:call-template name="link">
15: <xsl:with-param name="format" select="'html'"/>
16: <xsl:with-param name="embolden" select="'true'"/>
17: <xsl:with-param name="fontSize" select="'larger'"/>
18: <xsl:with-param name="link" select="concat(substring-before(Url,':8080/Build/Build.aspx?artifactMonike'),'/ReportServer/Pages/ReportViewer.aspx?/Confirmit/Failed+Tests&rs%3aCommand=Render&BuildParam=',substring-after(Url,'artifactMoniker='))"/>
19: <xsl:with-param name="displayText" select="'Report on failing tests in this build'"/>
20: </xsl:call-template>
21: </tr>
22: </xsl:if>
The added code is the lines 13 – 21.
Happy coding