<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>tfsbuildlab Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Home</link><description>tfsbuildlab Wiki Rss Description</description><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Home&amp;version=20</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;TFSBuildLab is a project to simplify the day to day operations when using automated builds and continuous integration with Visual Studio Team System.
&lt;br /&gt; &lt;br /&gt;This project handles common Team System issues such as:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Continuous%20Integration%20builds&amp;amp;referringTitle=Home"&gt;Continuous Integration builds&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Scheduled%20builds&amp;amp;referringTitle=Home"&gt;Scheduled builds&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Build%20queueing&amp;amp;referringTitle=Home"&gt;Build queueing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Event%20notifications&amp;amp;referringTitle=Home"&gt;Event notifications&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Manual%20and%20automated%20build%20cleanup&amp;amp;referringTitle=Home"&gt;Manual and automated build cleanup&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Many of these issues are handled in the TFS 2008 release (&lt;a href="http://download.microsoft.com/download/5/9/c/59cd0dc5-4691-4c3e-840c-66d865f27692/orcas-continuous-integration.xps" class="externalLink"&gt;http://download.microsoft.com/download/5/9/c/59cd0dc5-4691-4c3e-840c-66d865f27692/orcas-continuous-integration.xps&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), but for those out there using TFS 2005 TFSBuildLab is an easy way to handle build automation. We've also aimed to be as forward-compatible as possible so the features in TFSBuildLab will be very similar (conceptually atleast) to the ones in TFS 2008.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Documentation&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installation&amp;amp;referringTitle=Home"&gt;Installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Topology&amp;amp;referringTitle=Home"&gt;Topology&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Quickstart&amp;amp;referringTitle=Home"&gt;Quickstart&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=User%27s%20Guide&amp;amp;referringTitle=Home"&gt;User's Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Our blogs:&lt;br /&gt; &lt;br /&gt;Mathias Olausson - &lt;a href="http://olausson.net/blog" class="externalLink"&gt;http://olausson.net/blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Peter Blomqvist - &lt;a href="http://peterblomqvist.blogspot.com" class="externalLink"&gt;http://peterblomqvist.blogspot.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>MOlausson</author><pubDate>Fri, 21 Dec 2007 09:32:36 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071221093236A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Home&amp;version=19</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;TFSBuildLab is a project to simplify the day to day operations when using automated builds and Team System.
&lt;br /&gt; &lt;br /&gt;This project handles common Team System issues such as:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Continuous%20Integration%20builds&amp;amp;referringTitle=Home"&gt;Continuous Integration builds&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Scheduled%20builds&amp;amp;referringTitle=Home"&gt;Scheduled builds&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Build%20queueing&amp;amp;referringTitle=Home"&gt;Build queueing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Event%20notifications&amp;amp;referringTitle=Home"&gt;Event notifications&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Manual%20and%20automated%20build%20cleanup&amp;amp;referringTitle=Home"&gt;Manual and automated build cleanup&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Many of these issues are handled in the upcoming TFS 2008 release (&lt;a href="http://download.microsoft.com/download/5/9/c/59cd0dc5-4691-4c3e-840c-66d865f27692/orcas-continuous-integration.xps" class="externalLink"&gt;http://download.microsoft.com/download/5/9/c/59cd0dc5-4691-4c3e-840c-66d865f27692/orcas-continuous-integration.xps&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), but we wanted to have a good implementation until then and we also aim to be as forward-compatible as possible.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Project Documentation&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installation&amp;amp;referringTitle=Home"&gt;Installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Topology&amp;amp;referringTitle=Home"&gt;Topology&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Quickstart&amp;amp;referringTitle=Home"&gt;Quickstart&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=User%27s%20Guide&amp;amp;referringTitle=Home"&gt;User's Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Our blogs:&lt;br /&gt; &lt;br /&gt;Mathias Olausson - &lt;a href="http://olausson.net/blog" class="externalLink"&gt;http://olausson.net/blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Peter Blomqvist - &lt;a href="http://peterblomqvist.blogspot.com" class="externalLink"&gt;http://peterblomqvist.blogspot.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>MOlausson</author><pubDate>Mon, 05 Nov 2007 08:11:51 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071105081151A</guid></item><item><title>UPDATED WIKI: RestrictedPaths</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=RestrictedPaths&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
This policy enables you to restrict access to certain paths in you source control system and provide the users with an informative message explaining why the checkin is restricted. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=17893" alt="restrictedpath.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;To configure it you use this dialog:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=20245" alt="AddRestrictionPolicy.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;The path input field &lt;b&gt;Trigger Data&lt;/b&gt; expects a valid regular expression (currently not validated) for more info on regular expressions go to  &lt;a href="http://www.regular-expressions.info/tutorial.html" class="externalLink"&gt;http://www.regular-expressions.info/tutorial.html&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and the break on error will decided if we continue to produce a list of failures based on the full changeset or if we stop on the first found.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:50:18 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: RestrictedPaths 20071014075018P</guid></item><item><title>UPDATED WIKI: RestrictedPaths</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=RestrictedPaths&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
This policy enables you to restrict access to certain paths in you source control system and provide the users with an informative message explaining why the checkin is restricted. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=17893" alt="restrictedpath.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;To configure it you use this dialog:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=20245" alt="AddRestrictionPolicy.jpg" /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:48:08 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: RestrictedPaths 20071014074808P</guid></item><item><title>UPDATED WIKI: Adding a retention policy</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Adding a retention policy&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Adding a retention policy
&lt;/h2&gt; &lt;br /&gt;A retention policy will enable you to perform automatic cleanup of your builds to do this click on the new button in the upper right section and you will be prompted witht the following dialog:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=20244" alt="AddPolicy.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;There are three inputs that you can give.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Build Status&lt;/b&gt; can be on of the following (this input decides which builds get affected determined by their result status)&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Any&lt;/li&gt;&lt;li&gt;BuildFailed&lt;/li&gt;&lt;li&gt;BuildStopped&lt;/li&gt;&lt;li&gt;BuildSucceded&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Build Quality&lt;/b&gt; can be on of the following (this input decides which builds get affected determined by their build quality)&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Any&lt;/li&gt;&lt;li&gt;Unexamined&lt;/li&gt;&lt;li&gt;UnderInvestigation&lt;/li&gt;&lt;li&gt;Released&lt;/li&gt;&lt;li&gt;Rejected&lt;/li&gt;&lt;li&gt;ReadyforInitialTest&lt;/li&gt;&lt;li&gt;ReadyforDeployment&lt;/li&gt;&lt;li&gt;InitialTestPassed&lt;/li&gt;&lt;li&gt;LabTestPassed&lt;/li&gt;&lt;li&gt;UserAcceptanceTestsPassed&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Rentention Type&lt;/b&gt; can be on of the followin (this input decides how to interpret the third input)&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Builds (when the retention policy is executed it will determine how many build to purge based on the number of builds that exists)&lt;/li&gt;&lt;li&gt;Days (will only purge builds older than the number of days specified)&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Quantity&lt;/b&gt; here you specify the ammount of days to keep or the ammound of builds to keep based on the retention type given&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Build Status = BuildSucceded&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Build Quality = Any&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Retention Type = Builds&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Quantity = 5&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;&lt;i&gt;This input will make sure you only have the latest five succeded builds for the build type in question.&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:39:16 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Adding a retention policy 20071014073916P</guid></item><item><title>UPDATED WIKI: Adding a continous integration build</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Adding a continous integration build&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Adding a continous integration build
&lt;/h2&gt; &lt;br /&gt;A contious integration build will enable you to trigger a particular build type when ever a checkin occurs in a specific path you provide. It is also possible to exclude particular folders or files from the path given which can be handy to prevent exessive triggering of builds. If a checkin triggers a build that fails the person resonsible for this build will be emailed with information about the build break, also a work item will be created see the &lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=user%27s%20guide&amp;amp;referringTitle=Adding%20a%20continous%20integration%20build"&gt;user's guide&lt;/a&gt; form more info about how this works. To create a checkin trigger click on the new button in the lower right section and you will be prompted witht the following dialog:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=20243" alt="AddTrigger.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;When you add a trigger if the type &lt;i&gt;CheckinInclude&lt;/i&gt; or &lt;i&gt;CheckinExclude&lt;/i&gt; the input field &lt;b&gt;Trigger Data&lt;/b&gt; expects a valid regular expression (currently not validated) for more info on regular expressions go to  &lt;a href="http://www.regular-expressions.info/tutorial.html" class="externalLink"&gt;http://www.regular-expressions.info/tutorial.html&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;If you expand the dialog to present the advanced options you will see a list of all the available properties from the build script you can override any of these. There will only be a actual result if doing this if you activly use the provided build task for this in your scripts &lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=LoadOverriddenProperty&amp;amp;referringTitle=Adding%20a%20continous%20integration%20build"&gt;LoadOverriddenProperty&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Trigger Type = CheckinInclude&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Trigger Data = \$/DEMO&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;&lt;i&gt;This input will trigger a build every time someone checkin a file that lives under the root $/DEMO in source control.&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:29:14 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Adding a continous integration build 20071014072914P</guid></item><item><title>UPDATED WIKI: Adding a continous integration build</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Adding a continous integration build&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Adding a continous integration build
&lt;/h2&gt; &lt;br /&gt;A contious integration build will enable you to trigger a particular build type when ever a checkin occurs in a specific path you provide. It is also possible to exclude particular folders or files from the path given which can be handy to prevent exessive triggering of builds. If a checkin triggers a build that fails the person resonsible for this build will be emailed with information about the build break, also a work item will be created see the &lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=user%27s%20guide&amp;amp;referringTitle=Adding%20a%20continous%20integration%20build"&gt;user's guide&lt;/a&gt; form more info about how this works. To create a checkin trigger click on the new button in the lower right section and you will be prompted witht the following dialog:&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=20243" alt="AddTrigger.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;When you add a trigger if the type &lt;i&gt;CheckinInclude&lt;/i&gt; or &lt;i&gt;CheckinExclude&lt;/i&gt; the input field &lt;b&gt;Trigger Data&lt;/b&gt; expects a valid regular expression (currently not validated) for more info on regular expressions go to  &lt;a href="http://www.regular-expressions.info/tutorial.html" class="externalLink"&gt;http://www.regular-expressions.info/tutorial.html&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;If you expand the dialog to present the advanced options you will see a list of all the available properties from the build script you can override any of these. There will only be a actual result if doing this if you activly use the provided build task for this in your scripts LoadOverriddenProperty.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Example:&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Trigger Type = CheckinInclude&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Trigger Data = \$/DEMO&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;&lt;i&gt;This input will trigger a build every time someone checkin a file that lives under the root $/DEMO in source control.&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:28:43 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Adding a continous integration build 20071014072843P</guid></item><item><title>UPDATED WIKI: Build Queue</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Build Queue&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
The &lt;b&gt;build queue&lt;/b&gt; tab is the place where you can view what builds are currently queued up in the system. You can reorder the queued builds in case you really need a build to execute pronto or if you like you can delete a build from the queue and you can ofcourse put builds onto the queue.&lt;br /&gt; &lt;br /&gt;To delete a build you simple select it from the grid in the middle part of the tab and then press the &lt;i&gt;remove&lt;/i&gt; button in the lower part of the tab. If you need to reorder you select the build and either press &lt;i&gt;move up&lt;/i&gt; or &lt;i&gt;move down&lt;/i&gt; to move the build up and down in the execution order.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=16408" alt="admin_tab_buildqueue.jpg" /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Finally if you need to queue a build maybe someone else is running a build on the server you need you simple press the &lt;i&gt;queue build&lt;/i&gt; button in the lower left corner of the tab, this will bring up a dialog prompting you for which team project and the build type you which to queue (it will use the designated build server).&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=20242" alt="QueueBuild.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;If you expand the dialog to present the advanced options you will see a list of all the available properties from the build script you can override any of these. There will only be a actual result if doing this if you activly use the provided build task for this in your scripts &lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=LoadOverriddenProperty&amp;amp;referringTitle=Build%20Queue"&gt;LoadOverriddenProperty&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:27:25 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Build Queue 20071014072725P</guid></item><item><title>UPDATED WIKI: Build Queue</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Build Queue&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
The &lt;b&gt;build queue&lt;/b&gt; tab is the place where you can view what builds are currently queued up in the system. You can reorder the queued builds in case you really need a build to execute pronto or if you like you can delete a build from the queue and you can ofcourse put builds onto the queue.&lt;br /&gt; &lt;br /&gt;To delete a build you simple select it from the grid in the middle part of the tab and then press the &lt;i&gt;remove&lt;/i&gt; button in the lower part of the tab. If you need to reorder you select the build and either press &lt;i&gt;move up&lt;/i&gt; or &lt;i&gt;move down&lt;/i&gt; to move the build up and down in the execution order.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=16408" alt="admin_tab_buildqueue.jpg" /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;Finally if you need to queue a build maybe someone else is running a build on the server you need you simple press the &lt;i&gt;queue build&lt;/i&gt; button in the lower left corner of the tab, this will bring up a dialog prompting you for which team project and the build type you which to queue (it will use the designated build server).&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=20242" alt="QueueBuild.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;If you expand the dialog to present the advanced options you will see a list of all the available properties from the build script you can override any of these. There will only be a actual result if doing this if you activly use the provided build task for this in your scripts &lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=LoadOverriddenProperty&amp;amp;referringTitle=Build%20Queue"&gt;LoadOverriddenProperty&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:25:51 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Build Queue 20071014072551P</guid></item><item><title>UPDATED WIKI: TfsBuildLab History</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=TfsBuildLab History&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
This report let you play around with the event history in the TfsBuildLab database, the example below shows the number of deletes, scheduled builds, checkin triggered builds.&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=20241" alt="report.jpg" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:04:26 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: TfsBuildLab History 20071014070426P</guid></item><item><title>UPDATED WIKI: TfsBuildLab History</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=TfsBuildLab History&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
...&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/tfsbuildlab/Project/Download/FileDownload.aspx?DownloadId=20241" alt="report.jpg" /&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:02:44 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: TfsBuildLab History 20071014070244P</guid></item><item><title>UPDATED WIKI: TfsBuildLab History</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=TfsBuildLab History&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
...&lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 19:01:52 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: TfsBuildLab History 20071014070152P</guid></item><item><title>UPDATED WIKI: Installing TfsBuildLab Service</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installing TfsBuildLab Service&amp;version=11</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Installation
&lt;/h2&gt;Run the service setup on any server of you choice. We test installing on the application tier of TFS and a standalone TfsBuildLab server. Make sure you change the account that runs the service to something other that local system since you need to give this account permissions to use the database.&lt;br /&gt; &lt;br /&gt;Optionally create a database named TfsBuildLab, this is performed by the sevice setup if no database with the name you provide during setup exists already.&lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Run the CreateDatabase.sql script on your database to create the needed tables.&lt;/li&gt;&lt;li&gt;Run the CreateLogin.sql script to setup the needed security (don't forget to replace the string DOMAIN/ACCOUNT in the script with the account that is running your service).&lt;/li&gt;&lt;li&gt;Run the InsertData.sql script on your database to insert the needed data.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;h2&gt;
Prerequisites
&lt;/h2&gt;The service reuqires that you have access to either a SQL Server 2005 or a SQL Server 2000 database server where it can install its database. Also you need to install .NET Framework 2.0 and .NET Framework 3.0 (this also limits you to running either Windows XP and Windows Server 2003, we currently do not test on Windows Vista).&lt;br /&gt;&lt;h2&gt;
Configuration
&lt;/h2&gt;The following section explains the various settings available in the config file of the service:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsUser&lt;/b&gt;   the identity (username) that the service should use when connecting to the TFS server, this needs to be a valid TFS account (if you want to use the auto registration functions this needs to be a member of the Server\Team Foundation Adminstrators group). &lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsPassword&lt;/b&gt;    The password for the bove mentioned identity (username).&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsServerAddress&lt;/b&gt;    Fully qualified address for the TFS server (http://&amp;lt;servername&amp;gt;:&amp;lt;port&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;buildLabPort&lt;/b&gt;    The port used by the TfsBuildLab service for event notification subscriptions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabAdminPort&lt;/b&gt;    The port used by the TfsBuildLab service to expose it's administrative services.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsBuildLabConnectionString&lt;/b&gt;    The connection string to the TfsBuildLab database, for a single server installation the connection string would be the following &lt;i&gt;&amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TfsBuildLab;Data Source=(local)&amp;quot;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;RetentionPoliciesOnlyCleanupDropLocation&lt;/b&gt; This setting allows you to turn on that the retention policies only will remove the actual build drop when enforcing the policies.&lt;/li&gt;&lt;li&gt;&lt;b&gt;AutoRegisterNotifications&lt;/b&gt;    This setting allows you to turn of the automatic registration of notifications, we introduced this since this feature requires the account used to access the TFS server to be a memeber of the administrators group.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;QueueManagementInterval&lt;/b&gt;    The poll frequency for checking the build queue (in milliseconds, defaults to 60000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;ScheduleManagementInterval&lt;/b&gt;    The poll frequency for checking for new schedules (in milliseconds, defaults to 60000) this is only used if the service is started up without and schedules in the database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPolicyEnforcementInterval&lt;/b&gt;    The poll frequency for checking for old builds to purge (in milliseconds, defaults to 3600000)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;smtpServerAddress&lt;/b&gt;    The address for the SMTP server used for sending out CI alerts.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationSenderAddress&lt;/b&gt;    The email address to that will be the sender of the CI info mails when the build breaks.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CIAdministrativeNotificationEmail&lt;/b&gt;    The email address that will receive a copy of all CI info mails that are sent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;CINotificationWorkItemType&lt;/b&gt;    The TFS workitem type to create when a CI build fails.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemFields&lt;/b&gt;    A list of fields and their values that are required to be filled out when creating the workitem type above this list is separated by semicolon. T he result would look like this &lt;i&gt;&amp;quot;Microsoft.VSTS.CMMI.Symptom=Test;Microsoft.VSTS.CMMI.StepsToReproduce=YAT&amp;quot;&lt;/i&gt; (in a CMMI project where the feilds symptom and stepstoreproduce are mandatory)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Troubleshooting
&lt;/h2&gt; &lt;br /&gt;If you encounter problems using the service you can shut it down and add the following section to the config file and you will get a detailed log to help tracking down the problems:&lt;br /&gt; &lt;br /&gt;  &amp;lt;system.diagnostics&amp;gt;&lt;br /&gt;    &amp;lt;trace autoflush=&amp;quot;false&amp;quot; indentsize=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;listeners&amp;gt;&lt;br /&gt;        &amp;lt;add name=&amp;quot;TextLog&amp;quot; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot; initializeData=&amp;quot;c:\\tfsbuildlab.log&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;/listeners&amp;gt;&lt;br /&gt;    &amp;lt;/trace&amp;gt;&lt;br /&gt;  &amp;lt;/system.diagnostics&amp;gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Problems with auto registration of notifications&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;If you encounter problems with the registration of build and checkin notifications when starting the service and if you are unable to give the apropriate rights you can turn off auto registration (see above) and do the registration yourself the following way:&lt;br /&gt; &lt;br /&gt;BisSubscribe.exe /eventtype BuildStatusChangeEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt;BisSubscribe.exe /eventtype BuildCompletionEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt;BisSubscribe.exe /eventtype CheckinEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Problems with http.sys and exposing WCF services&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;The easy way around this is to make sure that the account running the service is a member of the local administrators group. If this is not possible you can grant the correct permissions to the account using one of the following ways:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Use a tool called &lt;b&gt;HttpNamespaceManager&lt;/b&gt; which you can find here &lt;a href="http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx" class="externalLink"&gt;http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; just make sure that you have selected an account when you are about to modify the permissions and grant execute persmissions to your service account.&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;
&lt;li&gt;Make sure that the url you provide follows the following syntax &lt;i&gt;{http://*:&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=TfsBuildLabPort&amp;amp;referringTitle=Installing%20TfsBuildLab%20Service"&gt;TfsBuildLabPort&lt;/a&gt;/}&lt;/i&gt; (the last trailing slash is crucial).&lt;/li&gt;&lt;li&gt;Make sure that when adding permission you select the account specified after you add it since otherwise you can add permissions (select GenericAll).&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Manually configure it as described by Keith Brown in his article here &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null" class="externalLink"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; there are some syntax problems (atleast for us) when following this article (also you'll need to determine the sid so for clarity it should look like this:&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;
&lt;li&gt;Retrive the sid using a tool called &lt;b&gt;getsid&lt;/b&gt; (it's included in the windows resource kit) to retrieve a sid you need to specify two servers (they can actually be the same server): &lt;b&gt;getsid \\[server] [domain]/[account] \\[server] [domain]/[user]&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Once you have a sid run httpcfg (make sure the port is the one you have specifed in your config as buildLabPort and that the sid is the one you retrieved in the previous step (note the command should return 0 if successful): &lt;b&gt;httpcfg set urlacl /u http://+:8000/ /a D:(A;;GX;;;S-1-5-21-1681502023-2202157333-1552196959-1028)&lt;/b&gt;&lt;/li&gt;&lt;li&gt;On Windows Vista you can use the simpler netsh.exe command instead of httpcfg.exe: &lt;b&gt;netsh.exe http add urlacl url=http://+:8000/ user=domain\user&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 18:59:36 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Installing TfsBuildLab Service 20071014065936P</guid></item><item><title>UPDATED WIKI: Installing TfsBuildLab Service</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installing TfsBuildLab Service&amp;version=10</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Installation
&lt;/h2&gt;Run the service setup on any server of you choice. We test installing on the application tier of TFS and a standalone TfsBuildLab server. Make sure you change the account that runs the service to something other that local system since you need to give this account permissions to use the database.&lt;br /&gt; &lt;br /&gt;Optionally create a database named TfsBuildLab, this is performed by the sevice setup if no database with the name you provide during setup exists already.&lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Run the CreateDatabase.sql script on your database to create the needed tables.&lt;/li&gt;&lt;li&gt;Run the CreateLogin.sql script to setup the needed security (don't forget to replace the string DOMAIN/ACCOUNT in the script with the account that is running your service).&lt;/li&gt;&lt;li&gt;Run the InsertData.sql script on your database to insert the needed data.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;h2&gt;
Prerequisites
&lt;/h2&gt;The service reuqires that you have access to either a SQL Server 2005 or a SQL Server 2000 database server where it can install its database. Also you need to install .NET Framework 2.0 and .NET Framework 3.0 (this also limits you to running either Windows XP and Windows Server 2003, we currently do not test on Windows Vista).&lt;br /&gt;&lt;h2&gt;
Configuration
&lt;/h2&gt;The following section explains the various settings available in the config file of the service:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsUser&lt;/b&gt;   the identity (username) that the service should use when connecting to the TFS server, this needs to be a valid TFS account (if you want to use the auto registration functions this needs to be a member of the Server\Team Foundation Adminstrators group). &lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsPassword&lt;/b&gt;    The password for the bove mentioned identity (username).&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsServerAddress&lt;/b&gt;    Fully qualified address for the TFS server (http://&amp;lt;servername&amp;gt;:&amp;lt;port&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;buildLabPort&lt;/b&gt;    The port used by the TfsBuildLab service for event notification subscriptions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabAdminPort&lt;/b&gt;    The port used by the TfsBuildLab service to expose it's administrative services.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsBuildLabConnectionString&lt;/b&gt;    The connection string to the TfsBuildLab database, for a single server installation the connection string would be the following &lt;i&gt;&amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TfsBuildLab;Data Source=(local)&amp;quot;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;RetentionPoliciesOnlyCleanupDropLocation&lt;/b&gt; This setting allows you to turn on that the retention policies only will remove the actual build drop when enforcing the policies.&lt;/li&gt;&lt;li&gt;&lt;b&gt;AutoRegisterNotifications&lt;/b&gt;    This setting allows you to turn of the automatic registration of notifications, we introduced this since this feature requires the account used to access the TFS server to be a memeber of the administrators group.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;QueueManagementInterval&lt;/b&gt;    The poll frequency for checking the build queue (in milliseconds, defaults to 60000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;ScheduleManagementInterval&lt;/b&gt;    The poll frequency for checking for new schedules (in milliseconds, defaults to 60000) this is only used if the service is started up without and schedules in the database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPolicyEnforcementInterval&lt;/b&gt;    The poll frequency for checking for old builds to purge (in milliseconds, defaults to 3600000)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;smtpServerAddress&lt;/b&gt;    The address for the SMTP server used for sending out CI alerts.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationSenderAddress&lt;/b&gt;    The email address to that will be the sender of the CI info mails when the build breaks.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CIAdministrativeNotificationEmail&lt;/b&gt;    The email address that will receive a copy of all CI info mails that are sent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;CINotificationWorkItemType&lt;/b&gt;    The TFS workitem type to create when a CI build fails.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemFields&lt;/b&gt;    A list of fields and their values that are required to be filled out when creating the workitem type above this list is separated by semicolon. T he result would look like this &lt;i&gt;&amp;quot;Microsoft.VSTS.CMMI.Symptom=Test;Microsoft.VSTS.CMMI.StepsToReproduce=YAT&amp;quot;&lt;/i&gt; (in a CMMI project where the feilds symptom and stepstoreproduce are mandatory)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Troubleshooting
&lt;/h2&gt; &lt;br /&gt;If you encounter problems using the service you can shut it down and add the following section to the config file and you will get a detailed log to help tracking down the problems:&lt;br /&gt; &lt;br /&gt;  &amp;lt;system.diagnostics&amp;gt;&lt;br /&gt;    &amp;lt;trace autoflush=&amp;quot;false&amp;quot; indentsize=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;listeners&amp;gt;&lt;br /&gt;        &amp;lt;add name=&amp;quot;TextLog&amp;quot; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot; initializeData=&amp;quot;c:\\tfsbuildlab.log&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;/listeners&amp;gt;&lt;br /&gt;    &amp;lt;/trace&amp;gt;&lt;br /&gt;  &amp;lt;/system.diagnostics&amp;gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Problems with auto registration of notifications&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;If you encounter problems with the registration of build and checkin notifications when starting the service and if you are unable to give the apropriate rights you can turn off auto registration (see above) and do the registration yourself the following way:&lt;br /&gt; &lt;br /&gt;BisSubscribe.exe /eventtype BuildStatusChangeEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt;BisSubscribe.exe /eventtype BuildCompletionEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt;BisSubscribe.exe /eventtype CheckinEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Problems with http.sys and exposing WCF services&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;The easy way around this is to make sure that the account running the service is a member of the local administrators group. If this is not possible you can grant the correct permissions to the account using one of the following ways:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Use a tool called &lt;b&gt;HttpNamespaceManager&lt;/b&gt; which you can find here &lt;a href="http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx" class="externalLink"&gt;http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; just make sure that you have selected an account when you are about to modify the permissions and grant execute persmissions to your service account.&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;
&lt;li&gt;Make sure that the url you provide follows the following syntax &lt;i&gt;http://*:&lt;a href="http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=TfsBuildLabPort&amp;amp;referringTitle=Installing%20TfsBuildLab%20Service"&gt;TfsBuildLabPort&lt;/a&gt;/&lt;/i&gt; (the last trailing slash is crucial).&lt;/li&gt;&lt;li&gt;Make sure that when adding permission you select the account specified after you add it since otherwise you can add permissions (select GenericAll).&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Manually configure it as described by Keith Brown in his article here &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null" class="externalLink"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; there are some syntax problems (atleast for us) when following this article (also you'll need to determine the sid so for clarity it should look like this:&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;
&lt;li&gt;Retrive the sid using a tool called &lt;b&gt;getsid&lt;/b&gt; (it's included in the windows resource kit) to retrieve a sid you need to specify two servers (they can actually be the same server): &lt;b&gt;getsid \\[server] [domain]/[account] \\[server] [domain]/[user]&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Once you have a sid run httpcfg (make sure the port is the one you have specifed in your config as buildLabPort and that the sid is the one you retrieved in the previous step (note the command should return 0 if successful): &lt;b&gt;httpcfg set urlacl /u http://+:8000/ /a D:(A;;GX;;;S-1-5-21-1681502023-2202157333-1552196959-1028)&lt;/b&gt;&lt;/li&gt;&lt;li&gt;On Windows Vista you can use the simpler netsh.exe command instead of httpcfg.exe: &lt;b&gt;netsh.exe http add urlacl url=http://+:8000/ user=domain\user&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 18:57:45 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Installing TfsBuildLab Service 20071014065745P</guid></item><item><title>UPDATED WIKI: Installing TfsBuildLab Service</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installing TfsBuildLab Service&amp;version=9</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Installation
&lt;/h2&gt;Run the service setup on any server of you choice. We test installing on the application tier of TFS and a standalone TfsBuildLab server. Make sure you change the account that runs the service to something other that local system since you need to give this account permissions to use the database.&lt;br /&gt; &lt;br /&gt;Optionally create a database named TfsBuildLab, this is performed by the sevice setup if no database with the name you provide during setup exists already.&lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Run the CreateDatabase.sql script on your database to create the needed tables.&lt;/li&gt;&lt;li&gt;Run the CreateLogin.sql script to setup the needed security (don't forget to replace the string DOMAIN/ACCOUNT in the script with the account that is running your service).&lt;/li&gt;&lt;li&gt;Run the InsertData.sql script on your database to insert the needed data.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;h2&gt;
Prerequisites
&lt;/h2&gt;The service reuqires that you have access to either a SQL Server 2005 or a SQL Server 2000 database server where it can install its database. Also you need to install .NET Framework 2.0 and .NET Framework 3.0 (this also limits you to running either Windows XP and Windows Server 2003, we currently do not test on Windows Vista).&lt;br /&gt;&lt;h2&gt;
Configuration
&lt;/h2&gt;The following section explains the various settings available in the config file of the service:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsUser&lt;/b&gt;   the identity (username) that the service should use when connecting to the TFS server, this needs to be a valid TFS account (if you want to use the auto registration functions this needs to be a member of the Server\Team Foundation Adminstrators group). &lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsPassword&lt;/b&gt;    The password for the bove mentioned identity (username).&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsServerAddress&lt;/b&gt;    Fully qualified address for the TFS server (http://&amp;lt;servername&amp;gt;:&amp;lt;port&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;buildLabPort&lt;/b&gt;    The port used by the TfsBuildLab service for event notification subscriptions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabAdminPort&lt;/b&gt;    The port used by the TfsBuildLab service to expose it's administrative services.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsBuildLabConnectionString&lt;/b&gt;    The connection string to the TfsBuildLab database, for a single server installation the connection string would be the following &lt;i&gt;&amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TfsBuildLab;Data Source=(local)&amp;quot;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;RetentionPoliciesOnlyCleanupDropLocation&lt;/b&gt; This setting allows you to turn on that the retention policies only will remove the actual build drop when enforcing the policies.&lt;/li&gt;&lt;li&gt;&lt;b&gt;AutoRegisterNotifications&lt;/b&gt;    This setting allows you to turn of the automatic registration of notifications, we introduced this since this feature requires the account used to access the TFS server to be a memeber of the administrators group.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;QueueManagementInterval&lt;/b&gt;    The poll frequency for checking the build queue (in milliseconds, defaults to 60000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;ScheduleManagementInterval&lt;/b&gt;    The poll frequency for checking for new schedules (in milliseconds, defaults to 60000) this is only used if the service is started up without and schedules in the database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPolicyEnforcementInterval&lt;/b&gt;    The poll frequency for checking for old builds to purge (in milliseconds, defaults to 3600000)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;smtpServerAddress&lt;/b&gt;    The address for the SMTP server used for sending out CI alerts.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationSenderAddress&lt;/b&gt;    The email address to that will be the sender of the CI info mails when the build breaks.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CIAdministrativeNotificationEmail&lt;/b&gt;    The email address that will receive a copy of all CI info mails that are sent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;CINotificationWorkItemType&lt;/b&gt;    The TFS workitem type to create when a CI build fails.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemFields&lt;/b&gt;    A list of fields and their values that are required to be filled out when creating the workitem type above this list is separated by semicolon. T he result would look like this &lt;i&gt;&amp;quot;Microsoft.VSTS.CMMI.Symptom=Test;Microsoft.VSTS.CMMI.StepsToReproduce=YAT&amp;quot;&lt;/i&gt; (in a CMMI project where the feilds symptom and stepstoreproduce are mandatory)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Troubleshooting
&lt;/h2&gt; &lt;br /&gt;If you encounter problems using the service you can shut it down and add the following section to the config file and you will get a detailed log to help tracking down the problems:&lt;br /&gt; &lt;br /&gt;  &amp;lt;system.diagnostics&amp;gt;&lt;br /&gt;    &amp;lt;trace autoflush=&amp;quot;false&amp;quot; indentsize=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;listeners&amp;gt;&lt;br /&gt;        &amp;lt;add name=&amp;quot;TextLog&amp;quot; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot; initializeData=&amp;quot;c:\\tfsbuildlab.log&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;/listeners&amp;gt;&lt;br /&gt;    &amp;lt;/trace&amp;gt;&lt;br /&gt;  &amp;lt;/system.diagnostics&amp;gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Problems with auto registration of notifications&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;If you encounter problems with the registration of build and checkin notifications when starting the service and if you are unable to give the apropriate rights you can turn off auto registration (see above) and do the registration yourself the following way:&lt;br /&gt; &lt;br /&gt;BisSubscribe.exe /eventtype BuildStatusChangeEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt;BisSubscribe.exe /eventtype BuildCompletionEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt;BisSubscribe.exe /eventtype CheckinEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Problems with http.sys and exposing WCF services&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;The easy way around this is to make sure that the account running the service is a member of the local administrators group. If this is not possible you can grant the correct permissions to the account using one of the following ways:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Use a tool called &lt;b&gt;HttpNamespaceManager&lt;/b&gt; which you can find here &lt;a href="http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx" class="externalLink"&gt;http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; just make sure that you have selected an account when you are about to modify the permissions and grant execute persmissions to your service account.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;# &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Manually configure it as described by Keith Brown in his article here &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null" class="externalLink"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; there are some syntax problems (atleast for us) when following this article (also you'll need to determine the sid so for clarity it should look like this:&lt;/li&gt;
&lt;/ul&gt;&lt;ol&gt;
&lt;li&gt;Retrive the sid using a tool called &lt;b&gt;getsid&lt;/b&gt; (it's included in the windows resource kit) to retrieve a sid you need to specify two servers (they can actually be the same server): &lt;b&gt;getsid \\[server] [domain]/[account] \\[server] [domain]/[user]&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Once you have a sid run httpcfg (make sure the port is the one you have specifed in your config as buildLabPort and that the sid is the one you retrieved in the previous step (note the command should return 0 if successful): &lt;b&gt;httpcfg set urlacl /u http://+:8000/ /a D:(A;;GX;;;S-1-5-21-1681502023-2202157333-1552196959-1028)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;On Windows Vista you can use the simpler netsh.exe command instead of httpcfg.exe: &lt;b&gt;netsh.exe http add urlacl url=http://+:8000/ user=domain\user&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 18:49:20 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Installing TfsBuildLab Service 20071014064920P</guid></item><item><title>UPDATED WIKI: Installing TfsBuildLab Service</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installing TfsBuildLab Service&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Installation
&lt;/h2&gt;Run the service setup on any server of you choice. We test installing on the application tier of TFS and a standalone TfsBuildLab server. Make sure you change the account that runs the service to something other that local system since you need to give this account permissions to use the database.&lt;br /&gt; &lt;br /&gt;Optionally create a database named TfsBuildLab, this is performed by the sevice setup if no database with the name you provide during setup exists already.&lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Run the CreateDatabase.sql script on your database to create the needed tables.&lt;/li&gt;&lt;li&gt;Run the CreateLogin.sql script to setup the needed security (don't forget to replace the string DOMAIN/ACCOUNT in the script with the account that is running your service).&lt;/li&gt;&lt;li&gt;Run the InsertData.sql script on your database to insert the needed data.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;h2&gt;
Prerequisites
&lt;/h2&gt;The service reuqires that you have access to either a SQL Server 2005 or a SQL Server 2000 database server where it can install its database. Also you need to install .NET Framework 2.0 and .NET Framework 3.0 (this also limits you to running either Windows XP and Windows Server 2003, we currently do not test on Windows Vista).&lt;br /&gt;&lt;h2&gt;
Configuration
&lt;/h2&gt;The following section explains the various settings available in the config file of the service:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsUser&lt;/b&gt;   the identity (username) that the service should use when connecting to the TFS server, this needs to be a valid TFS account (if you want to use the auto registration functions this needs to be a member of the Server\Team Foundation Adminstrators group). &lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsPassword&lt;/b&gt;    The password for the above mentioned identity (username).&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsServerAddress&lt;/b&gt;    Fully qualified address for the TFS server (http://&amp;lt;servername&amp;gt;:&amp;lt;port&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;buildLabPort&lt;/b&gt;    The port used by the TfsBuildLab service for event notification subscriptions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabAdminPort&lt;/b&gt;    The port used by the TfsBuildLab service to expose it's administrative services.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsBuildLabConnectionString&lt;/b&gt;    The connection string to the TfsBuildLab database, for a single server installation the connection string would be the following &lt;i&gt;&amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TfsBuildLab;Data Source=(local)&amp;quot;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;RetentionPoliciesOnlyCleanupDropLocation&lt;/b&gt; This setting allows you to turn on that the retention policies only will remove the actual build drop when enforcing the policies.&lt;/li&gt;&lt;li&gt;&lt;b&gt;AutoRegisterNotifications&lt;/b&gt;    This setting allows you to turn of the automatic registration of notifications, we introduced this since this feature requires the account used to access the TFS server to be a memeber of the administrators group.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;QueueManagementInterval&lt;/b&gt;    The poll frequency for checking the build queue (in milliseconds, defaults to 60000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;ScheduleManagementInterval&lt;/b&gt;    The poll frequency for checking for new schedules (in milliseconds, defaults to 60000) this is only used if the service is started up without and schedules in the database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPolicyEnforcementInterval&lt;/b&gt;    The poll frequency for checking for old builds to purge (in milliseconds, defaults to 3600000)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;smtpServerAddress&lt;/b&gt;    The address for the SMTP server used for sending out CI alerts.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationSenderAddress&lt;/b&gt;    The email address to that will be the sender of the CI info mails when the build breaks.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CIAdministrativeNotificationEmail&lt;/b&gt;    The email address that will receive a copy of all CI info mails that are sent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;CINotificationWorkItemType&lt;/b&gt;    The TFS workitem type to create when a CI build fails.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemFields&lt;/b&gt;    A list of fields and their values that are required to be filled out when creating the workitem type above this list is separated by semicolon. T he result would look like this &lt;i&gt;&amp;quot;Microsoft.VSTS.CMMI.Symptom=Test;Microsoft.VSTS.CMMI.StepsToReproduce=YAT&amp;quot;&lt;/i&gt; (in a CMMI project where the feilds symptom and stepstoreproduce are mandatory)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Troubleshooting
&lt;/h2&gt; &lt;br /&gt;If you encounter problems using the service you can shut it down and add the following section to the config file and you will get a detailed log to help tracking down the problems:&lt;br /&gt; &lt;br /&gt;  &amp;lt;system.diagnostics&amp;gt;&lt;br /&gt;    &amp;lt;trace autoflush=&amp;quot;false&amp;quot; indentsize=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;      &amp;lt;listeners&amp;gt;&lt;br /&gt;        &amp;lt;add name=&amp;quot;TextLog&amp;quot; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot; initializeData=&amp;quot;c:\\tfsbuildlab.log&amp;quot; /&amp;gt;&lt;br /&gt;      &amp;lt;/listeners&amp;gt;&lt;br /&gt;    &amp;lt;/trace&amp;gt;&lt;br /&gt;  &amp;lt;/system.diagnostics&amp;gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Problems with auto registration of notifications&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;If you encounter problems with the registration of build and checkin notifications when starting the service and if you are unable to give the apropriate rights you can turn off auto registration (see above) and do the registration yourself the following way:&lt;br /&gt; &lt;br /&gt;BisSubscribe.exe /eventtype BuildStatusChangeEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt;BisSubscribe.exe /eventtype BuildCompletionEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt;BisSubscribe.exe /eventtype CheckinEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Make sure that the account &lt;i&gt;(by default it's running as local system)&lt;/i&gt; running the service is a member of the local administrators group. This is a temporary requirement and will be removed in a future relese.&lt;/b&gt;&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;A more proper way to fix this (if you don't want the service to run as administrator) you need to configure http.sys to allow the service account to setup a channel using the http transport (this is a WCF related issue) you can do this in two ways:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Use a tool called &lt;b&gt;HttpNamespaceManager&lt;/b&gt; which you can find here &lt;a href="http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx" class="externalLink"&gt;http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; just make sure that you have selected an account when you are about to modify the permissions and grant execute persmissions to your service account.&lt;/li&gt;&lt;li&gt;Manually configure it as described by Keith Brown in his article here &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null" class="externalLink"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; there are some syntax problems (atleast for us) when following this article (also you'll need to determine the sid so for clarity it should look like this:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Retrive the sid using a tool called &lt;b&gt;getsid&lt;/b&gt; (it's included in the windows resource kit but we have uploaded it here as well) to retrieve a sid you need to specify two servers (they can actually be the same server): &lt;b&gt;getsid \\[server] [domain]/[account] \\[server] [domain]/[user]&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Once you have a sid run httpcfg (make sure the port is the one you have specifed in your config as buildLabPort and that the sid is the one you retrieved in the previous step (note the command should return 0 if successful): &lt;b&gt;httpcfg set urlacl /u http://+:8000/ /a D:(A;;GX;;;S-1-5-21-1681502023-2202157333-1552196959-1028)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;On Windows Vista you can use the simpler netsh.exe command instead of httpcfg.exe: &lt;b&gt;netsh.exe http add urlacl url=http://+:8000/ user=domain\user&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt; &lt;br /&gt; &lt;br /&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 18:38:33 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Installing TfsBuildLab Service 20071014063833P</guid></item><item><title>UPDATED WIKI: Installing TfsBuildLab Service</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installing TfsBuildLab Service&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Installation
&lt;/h2&gt;Run the service setup on any server of you choice. We test installing on the application tier of TFS and a standalone TfsBuildLab server. Make sure you change the account that runs the service to something other that local system since you need to give this account permissions to use the database.&lt;br /&gt; &lt;br /&gt;Optionally create a database named TfsBuildLab, this is performed by the sevice setup if no database with the name you provide during setup exists already.&lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Run the CreateDatabase.sql script on your database to create the needed tables.&lt;/li&gt;&lt;li&gt;Run the CreateLogin.sql script to setup the needed security (don't forget to replace the string DOMAIN/ACCOUNT in the script with the account that is running your service).&lt;/li&gt;&lt;li&gt;Run the InsertData.sql script on your database to insert the needed data.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;h2&gt;
Prerequisites
&lt;/h2&gt;The service reuqires that you have access to either a SQL Server 2005 or a SQL Server 2000 database server where it can install its database. Also you need to install .NET Framework 2.0 and .NET Framework 3.0 (this also limits you to running either Windows XP and Windows Server 2003, we currently do not test on Windows Vista).&lt;br /&gt;&lt;h2&gt;
Configuration
&lt;/h2&gt;The following section explains the various settings available in the config file of the service:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsUser&lt;/b&gt;   the identity (username) that the service should use when connecting to the TFS server, this needs to be a valid TFS account (if you want to use the auto registration functions this needs to be a member of the Server\Team Foundation Adminstrators group). &lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsPassword&lt;/b&gt;    The password for the above mentioned identity (username).&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsServerAddress&lt;/b&gt;    Fully qualified address for the TFS server (http://&amp;lt;servername&amp;gt;:&amp;lt;port&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;buildLabPort&lt;/b&gt;    The port used by the TfsBuildLab service for event notification subscriptions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabAdminPort&lt;/b&gt;    The port used by the TfsBuildLab service to expose it's administrative services.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsBuildLabConnectionString&lt;/b&gt;    The connection string to the TfsBuildLab database, for a single server installation the connection string would be the following &lt;i&gt;&amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TfsBuildLab;Data Source=(local)&amp;quot;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;RetentionPoliciesOnlyCleanupDropLocation&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;AutoRegisterNotifications&lt;/b&gt;    This setting allows you to turn of the automatic registration of notifications, we introduced this since this feature requires the account used to access the TFS server to be a memeber of the administrators group. If you bump into problems during service intialization that is related to this you need to do one of the following to resolve it:&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;QueueManagementInterval&lt;/b&gt;    The poll frequency for checking the build queue (in milliseconds, defaults to 60000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;ScheduleManagementInterval&lt;/b&gt;    The poll frequency for checking for new schedules (in milliseconds, defaults to 60000) this is only used if the service is started up without and schedules in the database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPolicyEnforcementInterval&lt;/b&gt;    The poll frequency for checking for old builds to purge (in milliseconds, defaults to 3600000)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;smtpServerAddress&lt;/b&gt;    The address for the SMTP server used for sending out CI alerts.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationSenderAddress&lt;/b&gt;    The email address to that will be the sender of the CI info mails when the build breaks.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CIAdministrativeNotificationEmail&lt;/b&gt;    The email address that will receive a copy of all CI info mails that are sent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;CINotificationWorkItemType&lt;/b&gt;    The TFS workitem type to create when a CI build fails.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemFields&lt;/b&gt;    A list of fields and their values that are required to be filled out when creating the workitem type above this list is separated by semicolon. T he result would look like this &lt;i&gt;&amp;quot;Microsoft.VSTS.CMMI.Symptom=Test;Microsoft.VSTS.CMMI.StepsToReproduce=YAT&amp;quot;&lt;/i&gt; (in a CMMI project where the feilds symptom and stepstoreproduce are mandatory)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Troubleshooting
&lt;/h2&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Add the user to the &lt;i&gt;Team Foundation Administrators&lt;/i&gt; group. You can achive this by executing the following command: &lt;i&gt;tfssecurity.exe /server:http://[TFSSERVER]:[PORT] /g+ adm: n:[DOMAIN]\[ACCOUNT]&lt;/i&gt; or simply using the Team Explorer and adding it to the group using the UI*&lt;/li&gt;&lt;li&gt;Turn of automatic registration by changing the setting to false and then manually add the nessecary registrations like this:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;BisSubscribe.exe /eventtype BuildStatusChangeEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;&lt;li&gt;BisSubscribe.exe /eventtype BuildCompletionEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;&lt;li&gt;BisSubscribe.exe /eventtype CheckinEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Make sure that the account &lt;i&gt;(by default it's running as local system)&lt;/i&gt; running the service is a member of the local administrators group. This is a temporary requirement and will be removed in a future relese.&lt;/b&gt;&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;A more proper way to fix this (if you don't want the service to run as administrator) you need to configure http.sys to allow the service account to setup a channel using the http transport (this is a WCF related issue) you can do this in two ways:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Use a tool called &lt;b&gt;HttpNamespaceManager&lt;/b&gt; which you can find here &lt;a href="http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx" class="externalLink"&gt;http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; just make sure that you have selected an account when you are about to modify the permissions and grant execute persmissions to your service account.&lt;/li&gt;&lt;li&gt;Manually configure it as described by Keith Brown in his article here &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null" class="externalLink"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; there are some syntax problems (atleast for us) when following this article (also you'll need to determine the sid so for clarity it should look like this:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Retrive the sid using a tool called &lt;b&gt;getsid&lt;/b&gt; (it's included in the windows resource kit but we have uploaded it here as well) to retrieve a sid you need to specify two servers (they can actually be the same server): &lt;b&gt;getsid \\[server] [domain]/[account] \\[server] [domain]/[user]&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Once you have a sid run httpcfg (make sure the port is the one you have specifed in your config as buildLabPort and that the sid is the one you retrieved in the previous step (note the command should return 0 if successful): &lt;b&gt;httpcfg set urlacl /u http://+:8000/ /a D:(A;;GX;;;S-1-5-21-1681502023-2202157333-1552196959-1028)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;On Windows Vista you can use the simpler netsh.exe command instead of httpcfg.exe: &lt;b&gt;netsh.exe http add urlacl url=http://+:8000/ user=domain\user&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Troubleshooting the service&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Turn on the tracing by adding the following section to the configuration file:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;  &amp;lt;system.diagnostics&amp;gt;&lt;/li&gt;&lt;li&gt;    &amp;lt;trace autoflush=&amp;quot;false&amp;quot; indentsize=&amp;quot;4&amp;quot;&amp;gt;&lt;/li&gt;&lt;li&gt;      &amp;lt;listeners&amp;gt;&lt;/li&gt;&lt;li&gt;        &amp;lt;add name=&amp;quot;TextLog&amp;quot; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot; initializeData=&amp;quot;c:\\tfsbuildlab.log&amp;quot; /&amp;gt;&lt;/li&gt;&lt;li&gt;      &amp;lt;/listeners&amp;gt;&lt;/li&gt;&lt;li&gt;    &amp;lt;/trace&amp;gt;&lt;/li&gt;&lt;li&gt;  &amp;lt;/system.diagnostics&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 18:23:17 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Installing TfsBuildLab Service 20071014062317P</guid></item><item><title>UPDATED WIKI: Installing TfsBuildLab Service</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installing TfsBuildLab Service&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Installation
&lt;/h2&gt;Run the service setup on any server of you choice. We test installing on the application tier of TFS and a standalone TfsBuildLab server. Make sure you change the account that runs the service to something other that local system since you need to give this account permissions to use the database.&lt;br /&gt; &lt;br /&gt;Optionally create a database named TfsBuildLab, this is performed by the sevice setup if no database with the name you provide during setup exists already.&lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Run the CreateDatabase.sql script on your database to create the needed tables.&lt;/li&gt;&lt;li&gt;Run the CreateLogin.sql script to setup the needed security (don't forget to replace the string DOMAIN/ACCOUNT in the script with the account that is running your service).&lt;/li&gt;&lt;li&gt;Run the InsertData.sql script on your database to insert the needed data.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;h2&gt;
Prerequisites
&lt;/h2&gt;The service reuqires that you have access to either a SQL Server 2005 or a SQL Server 2000 database server where it can install its database. Also you need to install .NET Framework 2.0 and .NET Framework 3.0 (this also limits you to running either Windows XP and Windows Server 2003, we currently do not test on Windows Vista).&lt;br /&gt;&lt;h2&gt;
Configuration
&lt;/h2&gt;The following section explains the various settings available in the config file of the service:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsUser&lt;/b&gt;   the identity (username) that the service should use when connecting to the TFS server, this needs to be a valid TFS account (if you want to use the auto registration functions this needs to be a member of the Server\Team Foundation Adminstrators group). &lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsPassword&lt;/b&gt;    The password for the above mentioned identity (username).&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsServerAddress&lt;/b&gt;    Fully qualified address for the TFS server (http://&amp;lt;servername&amp;gt;:&amp;lt;port&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;smtpServerAddress&lt;/b&gt;    The address for the SMTP server used for sending out CI alerts.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabPort&lt;/b&gt;    The port used by the TfsBuildLab service for event notification subscriptions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabAdminPort&lt;/b&gt;    The port used by the TfsBuildLab service to expose it's administrative services.&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsBuildLabConnectionString&lt;/b&gt;    Fully qualified connection string to the TfsBuildLab database created in the second step, for a single server installation the connection string would be the following &lt;i&gt;&amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TfsBuildLab;Data Source=(local)&amp;quot;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPoliciesOnlyCleanupDropLocation&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;AutoRegisterNotifications&lt;/b&gt;    This setting allows you to turn of the automatic registration of notifications, we introduced this since this feature requires the account used to access the TFS server to be a memeber of the administrators group. If you bump into problems during service intialization that is related to this you need to do one of the following to resolve it:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Add the user to the &lt;i&gt;Team Foundation Administrators&lt;/i&gt; group. You can achive this by executing the following command: &lt;i&gt;tfssecurity.exe /server:http://[TFSSERVER]:[PORT] /g+ adm: n:[DOMAIN]\[ACCOUNT]&lt;/i&gt; or simply using the Team Explorer and adding it to the group using the UI*&lt;/li&gt;&lt;li&gt;Turn of automatic registration by changing the setting to false and then manually add the nessecary registrations like this:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;BisSubscribe.exe /eventtype BuildStatusChangeEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;&lt;li&gt;BisSubscribe.exe /eventtype BuildCompletionEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;&lt;li&gt;BisSubscribe.exe /eventtype CheckinEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;QueueManagementInterval&lt;/b&gt;    The poll frequency for checking the build queue (in milliseconds, defaults to 6000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;ScheduleManagementInterval&lt;/b&gt;    The poll frequency for checking for new schedules (in milliseconds, defaults to 6000) this is only used if the service is started up without and schedules in the database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPolicyEnforcementInterval&lt;/b&gt;    The poll frequency for checking for old builds to purge (in milliseconds, defaults to 3600000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemType&lt;/b&gt;    The TFS workitem type to create when a CI build fails.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemFields&lt;/b&gt;    A list of fields and their values that are required to be filled out when creating the workitem type above this list is separated by semicolon. T he result would look like this &lt;i&gt;&amp;quot;Microsoft.VSTS.CMMI.Symptom=Test;Microsoft.VSTS.CMMI.StepsToReproduce=YAT&amp;quot;&lt;/i&gt; (in a CMMI project where the feilds symptom and stepstoreproduce are mandatory)&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationSenderAddress&lt;/b&gt;    The email address to that will be the sender of the CI info mails when the build breaks.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CIAdministrativeNotificationEmail&lt;/b&gt;    The email address that will receive a copy of all CI info mails that are sent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Troubleshooting
&lt;/h2&gt; &lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Make sure that the account &lt;i&gt;(by default it's running as local system)&lt;/i&gt; running the service is a member of the local administrators group. This is a temporary requirement and will be removed in a future relese.&lt;/b&gt;&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;A more proper way to fix this (if you don't want the service to run as administrator) you need to configure http.sys to allow the service account to setup a channel using the http transport (this is a WCF related issue) you can do this in two ways:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Use a tool called &lt;b&gt;HttpNamespaceManager&lt;/b&gt; which you can find here &lt;a href="http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx" class="externalLink"&gt;http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; just make sure that you have selected an account when you are about to modify the permissions and grant execute persmissions to your service account.&lt;/li&gt;&lt;li&gt;Manually configure it as described by Keith Brown in his article here &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null" class="externalLink"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; there are some syntax problems (atleast for us) when following this article (also you'll need to determine the sid so for clarity it should look like this:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Retrive the sid using a tool called &lt;b&gt;getsid&lt;/b&gt; (it's included in the windows resource kit but we have uploaded it here as well) to retrieve a sid you need to specify two servers (they can actually be the same server): &lt;b&gt;getsid \\[server] [domain]/[account] \\[server] [domain]/[user]&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Once you have a sid run httpcfg (make sure the port is the one you have specifed in your config as buildLabPort and that the sid is the one you retrieved in the previous step (note the command should return 0 if successful): &lt;b&gt;httpcfg set urlacl /u http://+:8000/ /a D:(A;;GX;;;S-1-5-21-1681502023-2202157333-1552196959-1028)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;On Windows Vista you can use the simpler netsh.exe command instead of httpcfg.exe: &lt;b&gt;netsh.exe http add urlacl url=http://+:8000/ user=domain\user&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Troubleshooting the service&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Turn on the tracing by adding the following section to the configuration file:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;  &amp;lt;system.diagnostics&amp;gt;&lt;/li&gt;&lt;li&gt;    &amp;lt;trace autoflush=&amp;quot;false&amp;quot; indentsize=&amp;quot;4&amp;quot;&amp;gt;&lt;/li&gt;&lt;li&gt;      &amp;lt;listeners&amp;gt;&lt;/li&gt;&lt;li&gt;        &amp;lt;add name=&amp;quot;TextLog&amp;quot; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot; initializeData=&amp;quot;c:\\tfsbuildlab.log&amp;quot; /&amp;gt;&lt;/li&gt;&lt;li&gt;      &amp;lt;/listeners&amp;gt;&lt;/li&gt;&lt;li&gt;    &amp;lt;/trace&amp;gt;&lt;/li&gt;&lt;li&gt;  &amp;lt;/system.diagnostics&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 18:18:33 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Installing TfsBuildLab Service 20071014061833P</guid></item><item><title>UPDATED WIKI: Installing TfsBuildLab Service</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installing TfsBuildLab Service&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Installation
&lt;/h2&gt;Run the service setup on any server of you choice. We test installing on the application tier of TFS and a standalone TfsBuildLab server. Make sure you change the account that runs the service to something other that local system since you need to give this account permissions to use the database.&lt;br /&gt; &lt;br /&gt;Optionally create a database named TfsBuildLab, this is performed by the sevice setup if no database with the name you provide during setup exists already.&lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Run the CreateDatabase.sql script on your database to create the needed tables.&lt;/li&gt;&lt;li&gt;Run the CreateLogin.sql script to setup the needed security (don't forget to replace the string DOMAIN/ACCOUNT in the script with the account that is running your service).&lt;/li&gt;&lt;li&gt;Run the InsertData.sql script on your database to insert the needed data.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;h2&gt;
Prerequisites
&lt;/h2&gt;The service reuqires that you have access to either a SQL Server 2005 or a SQL Server 2000 database server where it can install its database. Also you need to install .NET Framework 2.0 and .NET Framework 3.0 (this also limits you to running either Windows XP and Windows Server 2003, we currently do not test on Windows Vista).&lt;br /&gt;&lt;h2&gt;
Configuration
&lt;/h2&gt;The following section explains the various settings available in the config file of the service:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsUser&lt;/b&gt;   Contain the identity (username) that the service should use when connecting to the TFS server, this needs to be a valid TFS account (if you want to use the auto registration functions this needs to be a member of . &lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsPassword&lt;/b&gt;    The password for the above mentioned identity.&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsServerAddress&lt;/b&gt;    Fully qualified address for the TFS server (http://&amp;lt;servername&amp;gt;:&amp;lt;port&amp;gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;smtpServerAddress&lt;/b&gt;    The address for the SMTP server used for sending out CI alerts.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabPort&lt;/b&gt;    The port used by the TfsBuildLab service for event notification subscriptions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabAdminPort&lt;/b&gt;    The port used by the TfsBuildLab service to expose it's administrative services.&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsBuildLabConnectionString&lt;/b&gt;    Fully qualified connection string to the TfsBuildLab database created in the second step, for a single server installation the connection string would be the following &lt;i&gt;&amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TfsBuildLab;Data Source=(local)&amp;quot;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPoliciesOnlyCleanupDropLocation&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;AutoRegisterNotifications&lt;/b&gt;    This setting allows you to turn of the automatic registration of notifications, we introduced this since this feature requires the account used to access the TFS server to be a memeber of the administrators group. If you bump into problems during service intialization that is related to this you need to do one of the following to resolve it:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Add the user to the &lt;i&gt;Team Foundation Administrators&lt;/i&gt; group. You can achive this by executing the following command: &lt;i&gt;tfssecurity.exe /server:http://[TFSSERVER]:[PORT] /g+ adm: n:[DOMAIN]\[ACCOUNT]&lt;/i&gt; or simply using the Team Explorer and adding it to the group using the UI*&lt;/li&gt;&lt;li&gt;Turn of automatic registration by changing the setting to false and then manually add the nessecary registrations like this:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;BisSubscribe.exe /eventtype BuildStatusChangeEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;&lt;li&gt;BisSubscribe.exe /eventtype BuildCompletionEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;&lt;li&gt;BisSubscribe.exe /eventtype CheckinEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;QueueManagementInterval&lt;/b&gt;    The poll frequency for checking the build queue (in milliseconds, defaults to 6000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;ScheduleManagementInterval&lt;/b&gt;    The poll frequency for checking for new schedules (in milliseconds, defaults to 6000) this is only used if the service is started up without and schedules in the database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPolicyEnforcementInterval&lt;/b&gt;    The poll frequency for checking for old builds to purge (in milliseconds, defaults to 3600000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemType&lt;/b&gt;    The TFS workitem type to create when a CI build fails.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemFields&lt;/b&gt;    A list of fields and their values that are required to be filled out when creating the workitem type above this list is separated by semicolon. T he result would look like this &lt;i&gt;&amp;quot;Microsoft.VSTS.CMMI.Symptom=Test;Microsoft.VSTS.CMMI.StepsToReproduce=YAT&amp;quot;&lt;/i&gt; (in a CMMI project where the feilds symptom and stepstoreproduce are mandatory)&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationSenderAddress&lt;/b&gt;    The email address to that will be the sender of the CI info mails when the build breaks.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CIAdministrativeNotificationEmail&lt;/b&gt;    The email address that will receive a copy of all CI info mails that are sent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Troubleshooting
&lt;/h2&gt; &lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Make sure that the account &lt;i&gt;(by default it's running as local system)&lt;/i&gt; running the service is a member of the local administrators group. This is a temporary requirement and will be removed in a future relese.&lt;/b&gt;&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;A more proper way to fix this (if you don't want the service to run as administrator) you need to configure http.sys to allow the service account to setup a channel using the http transport (this is a WCF related issue) you can do this in two ways:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Use a tool called &lt;b&gt;HttpNamespaceManager&lt;/b&gt; which you can find here &lt;a href="http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx" class="externalLink"&gt;http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; just make sure that you have selected an account when you are about to modify the permissions and grant execute persmissions to your service account.&lt;/li&gt;&lt;li&gt;Manually configure it as described by Keith Brown in his article here &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null" class="externalLink"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; there are some syntax problems (atleast for us) when following this article (also you'll need to determine the sid so for clarity it should look like this:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Retrive the sid using a tool called &lt;b&gt;getsid&lt;/b&gt; (it's included in the windows resource kit but we have uploaded it here as well) to retrieve a sid you need to specify two servers (they can actually be the same server): &lt;b&gt;getsid \\[server] [domain]/[account] \\[server] [domain]/[user]&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Once you have a sid run httpcfg (make sure the port is the one you have specifed in your config as buildLabPort and that the sid is the one you retrieved in the previous step (note the command should return 0 if successful): &lt;b&gt;httpcfg set urlacl /u http://+:8000/ /a D:(A;;GX;;;S-1-5-21-1681502023-2202157333-1552196959-1028)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;On Windows Vista you can use the simpler netsh.exe command instead of httpcfg.exe: &lt;b&gt;netsh.exe http add urlacl url=http://+:8000/ user=domain\user&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Troubleshooting the service&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Turn on the tracing by adding the following section to the configuration file:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;  &amp;lt;system.diagnostics&amp;gt;&lt;/li&gt;&lt;li&gt;    &amp;lt;trace autoflush=&amp;quot;false&amp;quot; indentsize=&amp;quot;4&amp;quot;&amp;gt;&lt;/li&gt;&lt;li&gt;      &amp;lt;listeners&amp;gt;&lt;/li&gt;&lt;li&gt;        &amp;lt;add name=&amp;quot;TextLog&amp;quot; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot; initializeData=&amp;quot;c:\\tfsbuildlab.log&amp;quot; /&amp;gt;&lt;/li&gt;&lt;li&gt;      &amp;lt;/listeners&amp;gt;&lt;/li&gt;&lt;li&gt;    &amp;lt;/trace&amp;gt;&lt;/li&gt;&lt;li&gt;  &amp;lt;/system.diagnostics&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 18:07:12 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Installing TfsBuildLab Service 20071014060712P</guid></item><item><title>UPDATED WIKI: Installing TfsBuildLab Service</title><link>http://www.codeplex.com/tfsbuildlab/Wiki/View.aspx?title=Installing TfsBuildLab Service&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Installation
&lt;/h2&gt;Run the service setup on any server of you choice. We test installing on the application tier of TFS and a standalone TfsBuildLab server. Make sure you change the account that runs the service to something other that local system since you need to give this account permissions to use the database.&lt;br /&gt; &lt;br /&gt;Optionally create a database named TfsBuildLab, this is performed by the sevice setup if no database with the name you provide during setup exists already.&lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;Run the CreateDatabase.sql script on your database to create the needed tables.&lt;/li&gt;&lt;li&gt;Run the CreateLogin.sql script to setup the needed security (don't forget to replace the string DOMAIN/ACCOUNT in the script with the account that is running your service).&lt;/li&gt;&lt;li&gt;Run the InsertData.sql script on your database to insert the needed data.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;&lt;h2&gt;
Prerequisites
&lt;/h2&gt;The service reuqires that you have access to either a SQL Server 2005 or a SQL Server 2000 database server where it can install its database. Also you need to install .NET Framework 2.0 and .NET Framework 3.0 (this also limits you to running either Windows XP and Windows Server 2003, we currently do not test on Windows Vista).&lt;br /&gt;&lt;h2&gt;
Configuration
&lt;/h2&gt;The following section explains the various settings available in the config file of the service:&lt;br /&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;tfsUser&lt;/b&gt;   Should contain the identity (username) that the service should use when connecting to the TFS server. &lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsPassword&lt;/b&gt;    The password for the above mentioned identity.&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsServerAddress&lt;/b&gt;    Fully qualified address for the TFS server (http://&amp;lt;servername&amp;gt;:&amp;lt;port&amp;gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;smtpServerAddress&lt;/b&gt;    The address for the SMTP server used for sending out CI alerts.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabPort&lt;/b&gt;    The port used by the TfsBuildLab service for event notification subscriptions.&lt;/li&gt;&lt;li&gt;&lt;b&gt;buildLabAdminPort&lt;/b&gt;    The port used by the TfsBuildLab service to expose it's administrative services.&lt;/li&gt;&lt;li&gt;&lt;b&gt;tfsBuildLabConnectionString&lt;/b&gt;    Fully qualified connection string to the TfsBuildLab database created in the second step, for a single server installation the connection string would be the following &lt;i&gt;&amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TfsBuildLab;Data Source=(local)&amp;quot;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPoliciesOnlyCleanupDropLocation&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;AutoRegisterNotifications&lt;/b&gt;    This setting allows you to turn of the automatic registration of notifications, we introduced this since this feature requires the account used to access the TFS server to be a memeber of the administrators group. If you bump into problems during service intialization that is related to this you need to do one of the following to resolve it:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Add the user to the &lt;i&gt;Team Foundation Administrators&lt;/i&gt; group. You can achive this by executing the following command: &lt;i&gt;tfssecurity.exe /server:http://[TFSSERVER]:[PORT] /g+ adm: n:[DOMAIN]\[ACCOUNT]&lt;/i&gt; or simply using the Team Explorer and adding it to the group using the UI*&lt;/li&gt;&lt;li&gt;Turn of automatic registration by changing the setting to false and then manually add the nessecary registrations like this:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;BisSubscribe.exe /eventtype BuildStatusChangeEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;&lt;li&gt;BisSubscribe.exe /eventtype BuildCompletionEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;&lt;li&gt;BisSubscribe.exe /eventtype CheckinEvent /address http://[TFSBUILDLABSERVER]:[PORT] / /deliveryType Soap /server http://[TFSSERVER]:[PORT]&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;QueueManagementInterval&lt;/b&gt;    The poll frequency for checking the build queue (in milliseconds, defaults to 6000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;ScheduleManagementInterval&lt;/b&gt;    The poll frequency for checking for new schedules (in milliseconds, defaults to 6000) this is only used if the service is started up without and schedules in the database.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RetentionPolicyEnforcementInterval&lt;/b&gt;    The poll frequency for checking for old builds to purge (in milliseconds, defaults to 3600000)&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemType&lt;/b&gt;    The TFS workitem type to create when a CI build fails.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationWorkItemFields&lt;/b&gt;    A list of fields and their values that are required to be filled out when creating the workitem type above this list is separated by semicolon. T he result would look like this &lt;i&gt;&amp;quot;Microsoft.VSTS.CMMI.Symptom=Test;Microsoft.VSTS.CMMI.StepsToReproduce=YAT&amp;quot;&lt;/i&gt; (in a CMMI project where the feilds symptom and stepstoreproduce are mandatory)&lt;/li&gt;&lt;li&gt;&lt;b&gt;CINotificationSenderAddress&lt;/b&gt;    The email address to that will be the sender of the CI info mails when the build breaks.&lt;/li&gt;&lt;li&gt;&lt;b&gt;CIAdministrativeNotificationEmail&lt;/b&gt;    The email address that will receive a copy of all CI info mails that are sent.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Troubleshooting
&lt;/h2&gt; &lt;br /&gt;&lt;ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Make sure that the account &lt;i&gt;(by default it's running as local system)&lt;/i&gt; running the service is a member of the local administrators group. This is a temporary requirement and will be removed in a future relese.&lt;/b&gt;&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;A more proper way to fix this (if you don't want the service to run as administrator) you need to configure http.sys to allow the service account to setup a channel using the http transport (this is a WCF related issue) you can do this in two ways:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Use a tool called &lt;b&gt;HttpNamespaceManager&lt;/b&gt; which you can find here &lt;a href="http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx" class="externalLink"&gt;http://blogs.msdn.com/paulwh/archive/2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; just make sure that you have selected an account when you are about to modify the permissions and grant execute persmissions to your service account.&lt;/li&gt;&lt;li&gt;Manually configure it as described by Keith Brown in his article here &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null" class="externalLink"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/SecurityBriefs/default.aspx?loc=null&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; there are some syntax problems (atleast for us) when following this article (also you'll need to determine the sid so for clarity it should look like this:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Retrive the sid using a tool called &lt;b&gt;getsid&lt;/b&gt; (it's included in the windows resource kit but we have uploaded it here as well) to retrieve a sid you need to specify two servers (they can actually be the same server): &lt;b&gt;getsid \\[server] [domain]/[account] \\[server] [domain]/[user]&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Once you have a sid run httpcfg (make sure the port is the one you have specifed in your config as buildLabPort and that the sid is the one you retrieved in the previous step (note the command should return 0 if successful): &lt;b&gt;httpcfg set urlacl /u http://+:8000/ /a D:(A;;GX;;;S-1-5-21-1681502023-2202157333-1552196959-1028)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;On Windows Vista you can use the simpler netsh.exe command instead of httpcfg.exe: &lt;b&gt;netsh.exe http add urlacl url=http://+:8000/ user=domain\user&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/ol&gt; &lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Troubleshooting the service&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Turn on the tracing by adding the following section to the configuration file:&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;  &amp;lt;system.diagnostics&amp;gt;&lt;/li&gt;&lt;li&gt;    &amp;lt;trace autoflush=&amp;quot;false&amp;quot; indentsize=&amp;quot;4&amp;quot;&amp;gt;&lt;/li&gt;&lt;li&gt;      &amp;lt;listeners&amp;gt;&lt;/li&gt;&lt;li&gt;        &amp;lt;add name=&amp;quot;TextLog&amp;quot; type=&amp;quot;System.Diagnostics.TextWriterTraceListener&amp;quot; initializeData=&amp;quot;c:\\tfsbuildlab.log&amp;quot; /&amp;gt;&lt;/li&gt;&lt;li&gt;      &amp;lt;/listeners&amp;gt;&lt;/li&gt;&lt;li&gt;    &amp;lt;/trace&amp;gt;&lt;/li&gt;&lt;li&gt;  &amp;lt;/system.diagnostics&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>PeterBlomqvist</author><pubDate>Sun, 14 Oct 2007 18:00:59 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Installing TfsBuildLab Service 20071014060059P</guid></item></channel></rss>