<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Team System</title><link>http://blogs.vertigosoftware.com/teamsystem/default.aspx</link><description>Visual Studio Team System: tips, tricks, and techniques</description><dc:language>en-US</dc:language><generator>CommunityServer 1.1 (Build: 1.1.0.50615)</generator><item><title>Team System Bug Entry Webform for ASP.NET</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/04/09/4828.aspx</link><pubDate>Mon, 09 Apr 2007 19:17:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4828</guid><dc:creator>jatwood</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4828.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4828</wfw:commentRss><description>&lt;p&gt;
A common request for ASP.NET projects that are using Team System is to have a "new bug" webform. This way, customers or users have a way to get their bug submissions directly into Team System.
&lt;p&gt;
I whipped up a quick little "hello world" demo of an ASP.NET webform that connects to Team System and enters a bug on behalf of the user. It's a single page plus a configuration section, with some basic error handling logic in case something goes wrong.
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4827/original.aspx"&gt;
&lt;p&gt;
&lt;a href="http://blogs.vertigosoftware.com/files/TFSWebDemo.zip"&gt;&lt;b&gt;Download the Visual Studio 2005 solution (7kb)&lt;/b&gt;&lt;/a&gt;
&lt;p&gt;
It's intentionally simple as is, but you could easily extend it to add more complex work items with attachments, and so forth.
&lt;p&gt;
The web.config looks like this:
&lt;p&gt;
&lt;pre&gt;
&amp;lt;configSections&amp;gt;
  &amp;lt;sectionGroup name="TFS"&amp;gt;
    &amp;lt;section name="Server" type="TFSConfigurationSection, TFSWebDemo"/&amp;gt;
  &amp;lt;/sectionGroup&amp;gt;
&amp;lt;/configSections&amp;gt;

&amp;lt;TFS&amp;gt;
  &amp;lt;Server server="http://tfsserver:8080" userName="username" password="password" domain="domain" project="projectname" /&amp;gt;
&amp;lt;/TFS&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
Be sure to edit this to select the right server, user, and project. &lt;font color="red"&gt;Note that you may need to grant permission to the 'C:\Documents and Settings\Default User\Local Settings\Application Data\Microsoft\Team Foundation\1.0\Cache' folder for the user specified in web.config&lt;/font&gt;. Or at least, I did on our web server.
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4828" width="1" height="1"&gt;</description></item><item><title>Is Team Foundation Server 64-bit capable?</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/03/13/4735.aspx</link><pubDate>Tue, 13 Mar 2007 21:53:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4735</guid><dc:creator>jatwood</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4735.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4735</wfw:commentRss><description>&lt;p&gt;
Recently, I was asked whether Team Foundation Server works in a 64-bit environment.
&lt;p&gt;
The answer to this question depends on whether you have a dual-server TFS install, or a single-server TFS insall.
&lt;p&gt;
If you have a &lt;b&gt;single-server TFS install&lt;/b&gt;, you must use a 32-bit operating system.
&lt;p&gt;
If you have a &lt;b&gt;dual-server TFS install&lt;/b&gt;, some parts of TFS can be installed on a 64-bit operating system:
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;The data tier fully supports 64-bit. You can use a 64-bit edition of SQL Server to host the TFS databases.
&lt;li&gt;The build server and Visual Studio 2005 &lt;i&gt;can&lt;/i&gt; run fine under the WOW64 emulation layer on any 64-bit edition of Windows.
&lt;li&gt;The application tier &lt;i&gt;must&lt;/i&gt; be installed on a 32-bit edition of Windows.
&lt;li&gt;The Team Proxy &lt;i&gt;must&lt;/i&gt; be installed on a 32-bit edition of Windows.
&lt;/ul&gt;
&lt;p&gt;
I imagine TFS will be more fully 64-bit in the next release. But for now, at least you can take full advantage of a 64-bit operating system for the database portion of TFS.
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4735" width="1" height="1"&gt;</description></item><item><title>Troubleshooting &amp;quot;Team Foundation Server cound not resolve the user or group&amp;quot;</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/03/05/4706.aspx</link><pubDate>Mon, 05 Mar 2007 22:16:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4706</guid><dc:creator>jatwood</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4706.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4706</wfw:commentRss><description>&lt;p&gt;
Here's what to do when you're adding an Active Directory user to a Team Project and you run into this error:
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4705/original.aspx"&gt;
&lt;p&gt;
&lt;i&gt;Team Foundation server could not resolve the user or group (name). The user or group might be a member of a different domain, or the server might not have access to that domain. Verify the domain membership of the server and any domain trusts.&lt;/i&gt;
&lt;p&gt;
As documented in &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=373843&amp;SiteID=1"&gt;this forum thread&lt;/a&gt;, this error usually occurs when &lt;b&gt;the client attempting to add a user to a Team Project doesn't have the same domain permissions as the Team Foundation Server&lt;/b&gt;.
&lt;p&gt;
The first thing to try is adding the user via the Team Foundation Server. Log in to the server and either use the &lt;code&gt;tfssubscribe.exe&lt;/code&gt; command line tool, or if Visual Studio 2005 is installed on the server, add them that way. But make sore you do this &lt;i&gt;on the server&lt;/i&gt;. 
&lt;p&gt;
If adding the user works on the server, but doesn't work on the client, then you know it's due to the difference between client domain permissions and the TFS domain permissions.
&lt;p&gt;
&lt;font color="red"&gt;UPDATE: Don't forget to check the credentials of the TFS service accounts. If the TFS service account password has expired, or if the TFS service account is otherwise invalid, you can see this error message as well.&lt;/font&gt;
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4706" width="1" height="1"&gt;</description></item><item><title>Incorporating a ClickOnce Application into your Team Build</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/20/Incorporating_a_ClickOnce_Application_into_your_Team_Build.aspx</link><pubDate>Tue, 20 Feb 2007 22:00:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4647</guid><dc:creator>jatwood</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4647.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4647</wfw:commentRss><description>&lt;p&gt;
I found out last week that the Team Build server doesn't perform the essential Publish step that makes a &lt;a href="http://msdn.microsoft.com/msdnmag/issues/04/05/clickonce/"&gt;ClickOnce app&lt;/a&gt;, well, a ClickOnce app!
&lt;p&gt;
But this is easy enough to fix.
&lt;p&gt;
Let's start with a simple Hello World ClickOnce app that has one shared DLL dependency. If we do a Team Build for this app, we get the following files in the drop folder:
&lt;p&gt;
&lt;pre&gt;
OneClickApp.application
OneClickApp.exe
OneClickApp.exe.manifest
SharedLibrary.dll
&lt;/pre&gt;
&lt;p&gt;
Notice anything missing? To be fair, even in the Visual Studio 2005 IDE, &lt;b&gt;Publish is a seperate step from Build that you must manually invoke via a different menu.&lt;/b&gt;
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4646/original.aspx"&gt;
&lt;p&gt;
Even if you're building and publishing the project remotely on the build server, you must Publish locally at least once, so all the Publish preferences are stored in the project files.
&lt;p&gt;
In order to Publish a project on the Team Build server, we have to make a small edit to the &lt;code&gt;tfsbuild.proj&lt;/code&gt; file. Under the SolutionToBuild XML element, &lt;b&gt;add a SolutionToPublish element&lt;/b&gt;:
&lt;p&gt;
&lt;p&gt;&lt;font face='Monospace' size='-1'&gt;
&lt;font color='Blue'&gt;&amp;lt;&lt;/font&gt;&lt;font color='#a31515'&gt;ItemGroup&lt;/font&gt;&lt;font color='Blue'&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color='#a31515'&gt;SolutionToBuild&lt;/font&gt;&lt;font color='Blue'&gt; &lt;/font&gt;&lt;font color='Red'&gt;Include&lt;/font&gt;&lt;font color='Blue'&gt;=&lt;/font&gt;&lt;font color='Black'&gt;&amp;quot;&lt;/font&gt;&lt;font color='Blue'&gt;$(SolutionRoot)\OneClickApp.sln&lt;/font&gt;&lt;font color='Black'&gt;&amp;quot;&lt;/font&gt;&lt;font color='Blue'&gt; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color='#a31515'&gt;SolutionToPublish&lt;/font&gt;&lt;font color='Blue'&gt; &lt;/font&gt;&lt;font color='Red'&gt;Include&lt;/font&gt;&lt;font color='Blue'&gt;=&lt;/font&gt;&lt;font color='Black'&gt;&amp;quot;&lt;/font&gt;&lt;font color='Blue'&gt;$(SolutionRoot)\OneClickApp.sln&lt;/font&gt;&lt;font color='Black'&gt;&amp;quot;&lt;/font&gt;&lt;font color='Blue'&gt; /&amp;gt;&lt;br /&gt;
&amp;lt;/&lt;/font&gt;&lt;font color='#a31515'&gt;ItemGroup&lt;/font&gt;&lt;font color='Blue'&gt;&amp;gt;&lt;/font&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
Check this change in, then try rebuilding. Now the drop folder contains the Publish results, too:
&lt;p&gt;
&lt;pre&gt;
OneClickApp.application
OneClickApp.exe
OneClickApp.exe.manifest
SharedLibrary.dll
OneClickApp_1_0_0_0\OneClickApp.exe.deploy
OneClickApp_1_0_0_0\OneClickApp.exe.manifest
OneClickApp_1_0_0_0\SharedLibrary.dll.deploy
setup.exe
&lt;/pre&gt;
&lt;p&gt;
See all the new files at the bottom? With that small edit, this build is now functionally equivalent to a local Build plus Publish.
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4647" width="1" height="1"&gt;</description></item><item><title>Copying Web Files After a Team Build</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/15/Copying_Web_Files_After_a_Team_Build.aspx</link><pubDate>Fri, 16 Feb 2007 00:05:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4624</guid><dc:creator>jatwood</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4624.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4624</wfw:commentRss><description>&lt;p&gt;
After building a web project in a Team Build, you probably want to deploy that website to a target server. And what better place to do this than in the build scripts themselves?
&lt;p&gt;
This is pretty easy to do; we'll just customize the &lt;b&gt;AfterBuild&lt;/b&gt; event to XCOPY the contents of the \_PublishedWebsites folder somewhere. Note that &lt;font color="red"&gt;you must grant permission for the Team Build account to the target UNC path first&lt;/font&gt;-- otherwise the copy will immediately fail!
&lt;p&gt;
There are two slightly different ways to do this, depening on what kind of web project you chose.
&lt;p&gt;
If you are using &lt;b&gt;Web Application Projects&lt;/b&gt;, you'll need to edit the project file. The easiest way to do this is to right-click the project and select "Unload". After doing that, you can right click the unloaded project and edit the project file directly within Visual Studio:
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4622/original.aspx"&gt;
&lt;p&gt;
Edit the project file to include the following command. The variable $(WebProjectOutputDir) conveniently includes the exact path we want:
&lt;p&gt;
&lt;p&gt;&lt;font face='Monospace' size='-1'&gt;
&lt;font color='Blue'&gt;&amp;lt;&lt;/font&gt;&lt;font color='#a31515'&gt;Target&lt;/font&gt;&lt;font color='Blue'&gt; &lt;/font&gt;&lt;font color='Red'&gt;Name&lt;/font&gt;&lt;font color='Blue'&gt;=&lt;/font&gt;&lt;font color='Black'&gt;"&lt;/font&gt;&lt;font color='Blue'&gt;AfterBuild&lt;/font&gt;&lt;font color='Black'&gt;"&lt;/font&gt;&lt;font color='Blue'&gt;&amp;gt;&lt;br /&gt;
  &amp;lt;&lt;/font&gt;&lt;font color='#a31515'&gt;Exec&lt;/font&gt;&lt;font color='Blue'&gt; &lt;/font&gt;&lt;font color='Red'&gt;Command&lt;/font&gt;&lt;font color='Blue'&gt;=&lt;/font&gt;&lt;font color='Black'&gt;"&lt;/font&gt;&lt;font color='Blue'&gt;xcopy /y /e &lt;/font&gt;&lt;font color='Red'&gt;&amp;amp;quot;&lt;/font&gt;&lt;font color='Blue'&gt;$(WebProjectOutputDir)&lt;/font&gt;&lt;font color='Red'&gt;&amp;amp;quot;&lt;/font&gt;&lt;font color='Blue'&gt; &lt;/font&gt;&lt;font color='Red'&gt;&amp;amp;quot&lt;/font&gt;&lt;font color='Blue'&gt;\\remote\share&lt;/font&gt;&lt;font color='Red'&gt;&amp;amp;quot;&lt;/font&gt;&lt;font color='Black'&gt;"&lt;/font&gt;&lt;font color='Blue'&gt;/&amp;gt;&lt;br /&gt;
&amp;lt;&lt;/font&gt;&lt;font color='#a31515'&gt;Target&lt;/font&gt;&lt;font color='Blue'&gt;&amp;gt;&lt;/font&gt;
&lt;/font&gt;&lt;/p&gt;
Save this, check it in, then perform a Team Build. You should see the XCOPY command work in the build report, like so:
&lt;p&gt;
&lt;pre&gt;
Target AfterBuild:
xcopy /y /e "c:\builds\Demo\WebApplication1\Binaries\Release\_PublishedWebsites\
WebApplication1" "\\remote\share"
C:\builds\Demo\WebApplication1\Binaries\Release\_PublishedWebsites\WebApplication1\Default.aspx
C:\builds\Demo\WebApplication1\Binaries\Release\_PublishedWebsites\WebApplication1\Web.config
C:\builds\Demo\WebApplication1\Binaries\Release\_PublishedWebsites\WebApplication1\bin\SharedLibrary1.dll
C:\builds\Demo\WebApplication1\Binaries\Release\_PublishedWebsites\WebApplication1\bin\SharedLibrary1.pdb
C:\builds\Demo\WebApplication1\Binaries\Release\_PublishedWebsites\WebApplication1\bin\WebApplication1.dll
C:\builds\Demo\WebApplication1\Binaries\Release\_PublishedWebsites\WebApplication1\bin\WebApplication1.pdb
C:\builds\Demo\WebApplication1\Binaries\Release\_PublishedWebsites\WebApplication1\bin\WebService1.dll
C:\builds\Demo\WebApplication1\Binaries\Release\_PublishedWebsites\WebApplication1\bin\WebService1.pdb
8 File(s) copied
&lt;/pre&gt;
&lt;p&gt;
If you are using &lt;b&gt;Web Site Projects&lt;/b&gt;, you must have &lt;a href="http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/15/Building_a_Web_Site_Project_with_Team_Build.aspx"&gt;one Web Deployment project for each Web Site&lt;/a&gt;. Until you do, there's nothing to edit, and nothing to deploy. You'll be editing the Web Deployment Project directly: right click it and select "Open Project File" to begin.
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4623/original.aspx"&gt;
&lt;p&gt;
It's almost the same as the previous XCOPY command, except the variable you want this time is $(WDTargetDir). Unfortunately this path includes a trailing slash, so we have to add a period afterwards to indicate that we want to copy the contents of the folder.
&lt;p&gt;
&lt;p&gt;&lt;font face='Monospace' size='-1'&gt;
&lt;font color='Blue'&gt;&amp;lt;&lt;/font&gt;&lt;font color='#a31515'&gt;Target&lt;/font&gt;&lt;font color='Blue'&gt; &lt;/font&gt;&lt;font color='Red'&gt;Name&lt;/font&gt;&lt;font color='Blue'&gt;=&lt;/font&gt;&lt;font color='Black'&gt;"&lt;/font&gt;&lt;font color='Blue'&gt;AfterBuild&lt;/font&gt;&lt;font color='Black'&gt;"&lt;/font&gt;&lt;font color='Blue'&gt;&amp;gt;    &lt;br /&gt;
  &amp;lt;&lt;/font&gt;&lt;font color='#a31515'&gt;Exec&lt;/font&gt;&lt;font color='Blue'&gt; &lt;/font&gt;&lt;font color='Red'&gt;Command&lt;/font&gt;&lt;font color='Blue'&gt;=&lt;/font&gt;&lt;font color='Black'&gt;"&lt;/font&gt;&lt;font color='Blue'&gt;xcopy /y /e &lt;/font&gt;&lt;font color='Red'&gt;&amp;amp;quot;&lt;/font&gt;&lt;font color='Blue'&gt;$(WDTargetDir).&lt;/font&gt;&lt;font color='Red'&gt;&amp;amp;quot;&lt;/font&gt;&lt;font color='Blue'&gt; &lt;/font&gt;&lt;font color='Red'&gt;&amp;amp;quot;&lt;/font&gt;&lt;font color='Blue'&gt;\\remote\share&lt;/font&gt;&lt;font color='Red'&gt;&amp;amp;quot;&lt;/font&gt;&lt;font color='Black'&gt;"&lt;/font&gt;&lt;font color='Blue'&gt;/&amp;gt;&lt;br /&gt;
&amp;lt;/&lt;/font&gt;&lt;font color='#a31515'&gt;Target&lt;/font&gt;&lt;font color='Blue'&gt;&gt;&lt;/font&gt;
&lt;/font&gt;&lt;/p&gt;
Save this, check it in, then perform a Team Build. You should see the XCOPY command work in the build report, like so:
&lt;p&gt;
&lt;pre&gt;
Target AfterBuild:
xcopy /y /e "c:\builds\Demo\WebSite1\Binaries\Release\_PublishedWebsites\
WebSite1_deploy\." "\\remote\share"
C:\builds\Demo\WebSite1\Binaries\Release\_PublishedWebsites\WebSite1_deploy\.\Default.aspx
C:\builds\Demo\WebSite1\Binaries\Release\_PublishedWebsites\WebSite1_deploy\.\PrecompiledApp.config
C:\builds\Demo\WebSite1\Binaries\Release\_PublishedWebsites\WebSite1_deploy\.\web.config
C:\builds\Demo\WebSite1\Binaries\Release\_PublishedWebsites\WebSite1_deploy\.\bin\App_WebReferences.compiled
C:\builds\Demo\WebSite1\Binaries\Release\_PublishedWebsites\WebSite1_deploy\.\bin\SharedLibrary1.dll
C:\builds\Demo\WebSite1\Binaries\Release\_PublishedWebsites\WebSite1_deploy\.\bin\SharedLibrary1.pdb
C:\builds\Demo\WebSite1\Binaries\Release\_PublishedWebsites\WebSite1_deploy\.\bin\WebSite1_deploy.dll
7 File(s) copied
&lt;/pre&gt;
&lt;p&gt;
You could achieve the same effect by modifying a post-build event in the Team Build script, but I find it easier to modify the individual projects.
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4624" width="1" height="1"&gt;</description></item><item><title>Building a Web Site Project with Team Build</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/15/Building_a_Web_Site_Project_with_Team_Build.aspx</link><pubDate>Thu, 15 Feb 2007 22:05:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4620</guid><dc:creator>jatwood</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4620.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4620</wfw:commentRss><description>&lt;p&gt;
If you're still using Web Site projects, I strongly urge you to switch to &lt;a href="http://webproject.scottgu.com/"&gt;Web Application Projects&lt;/a&gt;. Web Application Projects are included in &lt;a href="http://blogs.vertigosoftware.com/teamsystem/archive/2007/01/15/Patching_Team_System_to_Service_Pack_1.aspx"&gt;Visual Studio 2005 Service Pack 1&lt;/a&gt;. There are lots of good technical and practical reasons to make the switch, especially in Team System. But I digress.
&lt;p&gt;
If you're still using Web Site projects, you'll have to make some modifications before you can build these projects using Team Build.
&lt;p&gt;
In order to build a Web Site project at all, you must add a new project type to your solution-- the &lt;a href="http://msdn2.microsoft.com/en-us/library/aa479568.aspx"&gt;Web Deployment Project&lt;/a&gt;. It's a new project type that you'll need to &lt;a href="http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx"&gt;download from Microsoft&lt;/a&gt; and install. But don't worry: it's a very small download, and a quick, painless install.
&lt;p&gt;
Once you have Web Deployment Projects installed, right click each web site and select "Add Web Deployment Project".
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4616/original.aspx"&gt;
&lt;p&gt;
Once you have the deployment projects set up, make sure they're deselected in Configuration Manager for the Debug builds. There's no need to waste compile time on deployment until you're ready to create a release.
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4618/original.aspx"&gt;
&lt;p&gt;
After you do a Team Build for this project, you should see a new _PublishedWebsites folder in the drops folder that contains the website and dependencies:
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4619/original.aspx"&gt;
&lt;p&gt;
Now, this is the behavior you'll get by default with a Web Application project, but for each Web Site project, you &lt;i&gt;must&lt;/i&gt; have one Web Deployment Project in place to get things working.
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4620" width="1" height="1"&gt;</description></item><item><title>Speeding up Team Builds</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/12/Speeding_up_Team_Builds.aspx</link><pubDate>Mon, 12 Feb 2007 23:01:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4594</guid><dc:creator>jatwood</dc:creator><slash:comments>26</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4594.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4594</wfw:commentRss><description>&lt;p&gt;
If you're testing a complex new team build, you may find yourself going through a lot of build cycles. This can be painful, because most complex builds also take a while to complete.
&lt;p&gt;
To speed up the build process, you can skip some parts of it. You can do this in one of two places. First, in the &lt;code&gt;TFSBuild.proj&lt;/code&gt;, you can insert these elements in the PropertyGroup:
&lt;p&gt;
&lt;pre&gt;
&amp;lt;!-- insert in PropertyGroup --&amp;gt;
&amp;lt;SkipClean&amp;gt;true&amp;lt;/SkipClean&amp;gt;
&amp;lt;SkipInitializeWorkspace&amp;gt;true&amp;lt;/SkipInitializeWorkspace&amp;gt;
&amp;lt;ForceGet&amp;gt;false&amp;lt;/ForceGet&amp;gt;
&amp;lt;SkipWorkItemCreation&amp;gt;true&amp;lt;/SkipWorkItemCreation&amp;gt;
&amp;lt;SkipLabel&amp;gt;true&amp;lt;/SkipLabel&amp;gt;
&amp;lt;SkipPostBuild&amp;gt;true&amp;lt;/SkipPostBuild&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
Alternately, you can edit the &lt;code&gt;TFSBuild.rsp&lt;/code&gt; file to achieve the same results:
&lt;p&gt;
&lt;pre&gt;
# This is a response file for MSBuild
# Add custom MSBuild command line options in this file
/p:SkipClean=true;SkipInitializeWorkspace=true;
ForceGet=false;SkipWorkItemCreation=true;
SkipLabel=true;SkipPostBuild=true 
&lt;/pre&gt;
&lt;p&gt;
(Note the above should all be on a single line; I broke it up for ease of display.) What are we skipping here? Well, we skip...
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;.. deleting the source code folder
&lt;li&gt;.. doing a "force get" of the source code, so we use the code that's already present on disk
&lt;li&gt;.. labelling after completing the build
&lt;li&gt;.. compiling a list of work items that changed in the build
&lt;li&gt;.. creating a work item when the build fails 
&lt;/ul&gt;
&lt;p&gt;
But despite all the skipping, the essential part of the build still completes. And that's usually what we're trying to troubleshoot.
&lt;p&gt;
(thanks to &lt;a href="http://weblogs.asp.net/dmckinstry/archive/2006/07/16/Hints-for-expediting-Team-Build-script-development.aspx"&gt;Dave McKinstry&lt;/a&gt; and &lt;a href="http://teamsystemrocks.com/blogs/omarv/archive/2006/04/04/791.aspx"&gt;Omar Villarreal&lt;/a&gt; for these tips!)
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4594" width="1" height="1"&gt;</description></item><item><title>Making Team Builds More Verbose</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/12/Making_Team_Builds_More_Verbose.aspx</link><pubDate>Mon, 12 Feb 2007 19:47:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4591</guid><dc:creator>jatwood</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4591.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4591</wfw:commentRss><description>&lt;p&gt;
Build engineering is one of the most challenging parts of Team System. It can be difficult to get a Team Build working exactly the way you want. When you're troubleshooting a build, the build log output file, &lt;code&gt;BuildLog.txt&lt;/code&gt;, is your best friend.
&lt;p&gt;
The build log is fairly helpful as-is, but it's possible to make it even more verbose in those times when you're troubleshooting an obscure build problem.
&lt;p&gt;
Visual Studio, like Team Build, also uses MSBuild under the hood to compile solutions. In Visual Studio, you can set the build verbosity via a handy IDE setting. It's under Tools, Options, Projects and Solutions, Build and Run. The "MSBuild project build output verbosity" field offers four values: Quiet, Minimal (the default), Normal, Detailed, and Diagnostic.
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4590/original.aspx"&gt;
&lt;p&gt;
You can also set verbosity via a Team Build script.
&lt;p&gt;
&lt;code&gt;MSBuild.exe&lt;/code&gt; supports the verbosity command line parameter:
&lt;p&gt;
&lt;pre&gt;
/verbosity:&amp;ltlevel&amp;gt; Display this amount of information in the event log.
                   The available verbosity levels are: q[uiet], m[inimal],
                   n[ormal], d[etailed], and diag[nostic]. (Short form: /v)
                   Example:
                     /verbosity:quiet
&lt;/pre&gt;
&lt;p&gt;
All we need to do is edit the &lt;code&gt;TFSBuild.rsp&lt;/code&gt; file in our TeamBuildTypes folder to pass this parameter on to &lt;code&gt;MSBuild.exe&lt;/code&gt;:
&lt;p&gt;
&lt;pre&gt;
# This is a response file for MSBuild
# Add custom MSBuild command line options in this file
/v:diag
&lt;/pre&gt;
&lt;p&gt;
Check &lt;code&gt;TFSBuild.rsp&lt;/code&gt; in, and then do a build. The resulting &lt;code&gt;BuildLog.txt&lt;/code&gt; will be much more.. er.. &lt;i&gt;verbose!&lt;/i&gt;
&lt;p&gt;
Here are the results of running a build for each verbosity level:
&lt;p&gt;
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;diagnostic&lt;td&gt;825 KB
&lt;tr&gt;&lt;td&gt;detailed&lt;td&gt;288 KB
&lt;tr&gt;&lt;td&gt;normal&lt;td&gt;48 KB
&lt;tr&gt;&lt;td&gt;minimal&lt;td&gt;12 KB
&lt;tr&gt;&lt;td&gt;quiet&lt;td&gt;0 KB
&lt;/table&gt;
&lt;p&gt;
&lt;b&gt;The default verbosity level for Team Build is normal&lt;/b&gt;, so be careful when ratcheting it all the way up to diagnostic!
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4591" width="1" height="1"&gt;</description></item><item><title>Team Foundation Server Event Subscription Tool</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/08/Team_Foundation_Server_Event_Subscription_Tool.aspx</link><pubDate>Thu, 08 Feb 2007 21:01:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4586</guid><dc:creator>jatwood</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4586.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4586</wfw:commentRss><description>&lt;p&gt;
The Team Alerts dialog lets you subscribe to basic email alerts on a Team Project.
&lt;p&gt;
&lt;img src="http://blogs.vertigosoftware.com/photos/jatwood/images/2031/original.aspx"&gt;
&lt;p&gt;
But the dialog is severely limited; the full richness of the email subscription mechanism in Team Foundation Server isn't available. To set up advanced subscriptions, you needed to use bissubscribe.exe. This is problematic, because the command-line syntax is complicated, and also because bissubscribe.exe is only available on the Team Foundation Server.
&lt;p&gt;
To address this deficiency Naren posted &lt;a href="http://blogs.msdn.com/narend/archive/2006/07/26/679440.aspx"&gt;a GUI tool that lets you create Work Item Event Subscriptions&lt;/a&gt; in July 2006. I took that tool and modified it so that it supports all event subscriptions, along with a bunch of other enhancements The new &lt;a href="http://www.codeplex.com/tfseventsubscription"&gt;&lt;b&gt;Team Foundation Server Event Subscription Tool&lt;/b&gt; is up on CodePlex now&lt;/a&gt;.
&lt;p&gt;
&lt;a href="http://www.codeplex.com/tfseventsubscription"&gt;&lt;img src="/photos/jatwood/images/4584/original.aspx"&gt;&lt;/a&gt;
&lt;p&gt;
&lt;a href="http://www.codeplex.com/tfseventsubscription"&gt;&lt;img src="/photos/jatwood/images/4585/original.aspx"&gt;&lt;/a&gt;
&lt;p&gt;
Some examples of subscriptions you might want to create are:
&lt;p&gt;
Email me when any new work item is created:
&lt;p&gt;
&lt;pre&gt;
PortfolioProject = 'TeamProject1' AND ChangeType = 'New'
&lt;/pre&gt;
&lt;p&gt;
Email me when any work item moves to the resolved state:
&lt;p&gt;
&lt;pre&gt;
"CoreFields/StringFields/Field[ReferenceName='System.State']/NewValue\" = 'Resolved'
&lt;/pre&gt;
&lt;p&gt;
Email we when a specific (string) field changes in a work item:
&lt;p&gt;
&lt;pre&gt;
PortfolioProject = 'TeamProject1' AND "ChangedFields/StringFields/Field[ReferenceName='field']/NewValue" &lt;&gt; null
&lt;/pre&gt;
&lt;p&gt;
Email me when someone checks source code into a specific folder:
&lt;p&gt;
&lt;pre&gt;
'Artifacts/Artifact[starts-with(@ServerItem, \"$/TeamProject1/A\")]' &lt;&gt; null
&lt;/pre&gt;
&lt;p&gt;
Email me when someone overrides a checkin policy:
&lt;p&gt;
&lt;pre&gt;TeamProject = 'TeamProject1' AND PolicyOverrideComment &lt;&gt; ''
&lt;/pre&gt;
&lt;p&gt;
The queries are all based on XPath applied to the Event XML. As you can see, it's quite powerful-- far more powerful than the simplistic Team Alerts dialog would lead you to believe!
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4586" width="1" height="1"&gt;</description></item><item><title>The path &amp;lt;path&amp;gt; is already mapped in workspace &amp;lt;workspace&amp;gt;</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/05/4572.aspx</link><pubDate>Tue, 06 Feb 2007 00:03:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4572</guid><dc:creator>jatwood</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4572.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4572</wfw:commentRss><description>&lt;p&gt;
I recently ran into a problem with a local TFS server. Although I was logged in as my local account, TFS insisted that I was logged in as Administrator. Since the server thought I was a different user, it prevented me from opening my local workspace with this error:
&lt;p&gt;
&lt;i&gt;The path  is already mapped in workspace &lt;/i&gt;
&lt;p&gt;
The path conflict error reminds us of one important fact about workspaces: only one local path can be mapped, &lt;i&gt;per user, per team foundation server&lt;/i&gt;. Two users can't share the same filesystem path. And two different team foundation servers can't share the same filesystem path, either.
&lt;p&gt;
The system caches your workspace mappings in this location, so if you're having workspace-related problems, it's worth clearing this cache file out:
&lt;p&gt;
&lt;code&gt;
C:\Documents and Settings\[user]\Local Settings\Application Data\Microsoft\Team Foundation\1.0\Cache\VersionControl.config
&lt;/code&gt;
&lt;p&gt;
As Buck Hodges points out, &lt;a href="http://blogs.msdn.com/buckh/archive/2006/09/12/path_is_already_mapped_in_workspace.aspx"&gt;you can also clear the local cache file at the command-line&lt;/a&gt;:
&lt;p&gt;
&lt;pre&gt;
tf workspaces /remove:*
&lt;/pre&gt;
&lt;p&gt;
But clearing the cache didn't help in my case. No matter how much I cleared, how many times I rebooted or logged off, I kept showing up as "Administrator", which means &lt;i&gt;I was conflicting with myself!&lt;/i&gt; I could map to a new folder, but that's not what I want. How is this possible?
&lt;p&gt;
Well, it's possible if you physically log in to the Team Foundation Server using a different set of credentials. Those credentials are cached deep in the bowels of Windows, and retrieved automatically the next time you contact the server. That's our problem!
&lt;p&gt;
To clear the credential cache, try Start, Run, then type
&lt;p&gt;
&lt;code&gt;
control userpasswords2
&lt;/code&gt;
&lt;p&gt;
And press enter. On the resulting dialog, click the advanced tab, and click Manage Passwords. Remove all cached credentials from this list.
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4571/original.aspx"&gt;
&lt;p&gt;
Once I cleared the cached credentials, I was able to access the Team Foundation Server as myself again. Problem solved.
&lt;p&gt;
With this in mind, if you must log in to the Team Foundation Server, &lt;b&gt;try to do so under your own credentials&lt;/b&gt;. It'll cause less problems later.
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4572" width="1" height="1"&gt;</description></item><item><title>Modifying the default Team Build</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/05/Modifying_the_default_Team_Build.aspx</link><pubDate>Mon, 05 Feb 2007 20:34:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4567</guid><dc:creator>jatwood</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4567.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4567</wfw:commentRss><description>&lt;p&gt;
One annoying thing about Team Builds created through the Team Build wizard is that &lt;b&gt;they pull down all the source code in the entire Team Project by default&lt;/b&gt;. This is almost never what I want. But it's easy enough to fix.
&lt;p&gt;
First, check out the TFSBuild.proj and WorkspaceMapping.xml files from the TeamBuildTypes folder in source control.
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4566/original.aspx"&gt;
&lt;p&gt;
Remember, the build user is just a user, exactly like you. And it has workspace mappings, just like you do. But in this case the workspace mapping is too broad. It's at the root of the Team Project. Let's fix that by editing &lt;b&gt;WorkspaceMapping.xml&lt;/b&gt;. Change it from this..
&lt;p&gt;
&lt;pre&gt;
&amp;lt;Mappings&amp;gt;
  &amp;lt;InternalMapping ServerItem="$/TeamProject1" LocalItem="C:\does-not-matter" 
    Type="Map" /&amp;gt;
&amp;lt;/Mappings&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
To this..
&lt;p&gt;
&lt;pre&gt;
&amp;lt;Mappings&amp;gt;
  &amp;lt;InternalMapping ServerItem="$/TeamProject1/DemoBuildWebApp"
    LocalItem="C:\does-not-matter"
    Type="Map" /&amp;gt;
&amp;lt;/Mappings&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
All we're doing is adding the Solution folder to the Team Project path. This is the key fix-- until we do this, the build user will get latest on the entire source tree. That's no good.
&lt;p&gt;
Two additional notes about the build user workspace mapping file:
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;If you do have a legitimate need to pull down a giant source tree, you can make it a little less painful by &lt;a href="http://blogs.vertigosoftware.com/teamsystem/archive/2006/10/04/Excluding_from_a_Team_Build_using_Cloaked_Folders.aspx"&gt;cloaking (aka hiding) some of the subfolders here&lt;/a&gt;.
&lt;li&gt;The path specified here is truly irrelevant. I changed it to C:\does-not-matter to make a point. The local path is &lt;i&gt;always&lt;/i&gt; the server build folder, so whatever you put here is completely ignored.
&lt;/ul&gt;
&lt;p&gt;
Next, we need to update our compilation path to reflect the fact that it's no longer in a subfolder. Edit TFSBuild.proj and modify this section from..
&lt;p&gt;
&lt;pre&gt;
&amp;lt;SolutionToBuild Include="$(SolutionRoot)\DemoBuildWebApp\DemoBuildWebApp.sln" /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
To this..
&lt;p&gt;
&lt;pre&gt;
&amp;lt;SolutionToBuild Include="$(SolutionRoot)\DemoBuildWebApp.sln" /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
Now check in the changes, re-build, and you'll see in the build report and the build folder that only the specific source in the solution subfolder was retrieved. Big improvement!
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4567" width="1" height="1"&gt;</description></item><item><title>Displaying Team System reports in the Team Portal</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/02/02/Displaying_Team_System_reports_in_the_Team_Portal.aspx</link><pubDate>Sat, 03 Feb 2007 00:24:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4558</guid><dc:creator>jatwood</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4558.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4558</wfw:commentRss><description>&lt;p&gt;
You can display Team System reports in the Team Portal using the default Page Viewer web part, which redirects to the URL
&lt;p&gt;
&lt;pre&gt;_layouts/tfsredirect.aspx?IsReport=1&amp;ReportName=name
&lt;/pre&gt;
&lt;p&gt;
But there's a better way.
&lt;p&gt;
I recommend &lt;a href="http://msdn2.microsoft.com/en-us/library/ms159772.aspx"&gt;installing the SQL Server 2005 Reporting Services Web Parts&lt;/a&gt;. They're already on your server, but they're not set up. To set them up, run this command on your Team Foundation Server web tier:
&lt;p&gt;
&lt;pre&gt;
C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\BIN\
STSADM.EXE -o addwppack -filename 
"C:\Program Files\Microsoft SQL Server\90\Tools\
Reporting Services\SharePoint\RSWebParts.cab"
&lt;/pre&gt;
&lt;p&gt;
Once you do this, you'll have two new Web Parts specifically designed for reporting, so you no longer need to rely on the generic Page Viewer. Note that the new controls are in the "Virtual Server Gallery":
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4555/original.aspx"&gt;
&lt;p&gt;
Here's the &lt;b&gt;Report Explorer&lt;/b&gt; web part in action
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4556/original.aspx"&gt;
&lt;p&gt;
And here's the &lt;b&gt;Report Viewer&lt;/b&gt; web part in action:
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4557/original.aspx"&gt;
&lt;p&gt;
The report gadgets work better. They offer much more control over the report output. For one thing, if you set any parameters to the report in design mode, those parameters are saved. You can also turn off the toolbar so the report comes up pre-configured to whatever parameters you last set.
&lt;p&gt;
Note that you will need to bits of information in the properties for each control:
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;Report Manager URL: &lt;b&gt;http://teamsystem/Reports&lt;/b&gt;
&lt;li&gt;Start Path (explorer): &lt;b&gt;/teamproject&lt;/b&gt;
&lt;li&gt;Start Path (viewer): &lt;b&gt;/teamproject/reportname&lt;/b&gt;
&lt;/ul&gt;
&lt;p&gt;
Remember, friends don't let friends use the generic Page Viewer web part to view Team System reports!
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4558" width="1" height="1"&gt;</description></item><item><title>Customizing Work Items in Visual Studio</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/01/30/Customizing_Work_Items_in_Visual_Studio.aspx</link><pubDate>Wed, 31 Jan 2007 01:19:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4544</guid><dc:creator>jatwood</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4544.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4544</wfw:commentRss><description>&lt;p&gt;
Customizing Work Item Types in Team System isn't quite as easy as it should be, but it's not difficult.
&lt;p&gt;
The Work Items are actually XML. To export them, you use the command line utilities &lt;code&gt;witimport&lt;/code&gt; and &lt;code&gt;witexport&lt;/code&gt;, which are located in the &lt;code&gt;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE&lt;/code&gt; path by default.
&lt;p&gt;
Here's how to export all 5 standard MSF Agile work item types (Bug, Task, Scenario, Quality of Service, and Risk):
&lt;p&gt;
&lt;pre&gt;
witexport /f c:\task.xml /t %tfs% /p demo /n Task
witexport /f c:\bug.xml /t %tfs% /p demo /n Bug
witexport /f c:\scenario.xml /t %tfs% /p demo /n Scenario
witexport /f c:\risk.xml /t %tfs% /p demo /n Risk
witexport /f c:\qos.xml /t %tfs% /p demo /n "Quality of Service Requirement"
&lt;/pre&gt;
&lt;p&gt;
I created two little batch files which automate the process of exporting and importing all 5 standard Work Item Types from the MSF Agile template. You can download them here:
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.vertigosoftware.com/files/export-all-work-item-types.bat.txt"&gt;export-all-work-item-types.bat&lt;/a&gt;
&lt;li&gt;&lt;a href="http://blogs.vertigosoftware.com/files/validate-all-work-item-types.bat.txt"&gt;validate-all-work-item-types.bat&lt;/a&gt;
&lt;/ul&gt;
&lt;p&gt;
Rename the files from .txt to .bat, and edit the path and TFS server name variables to match your environment.
&lt;p&gt;
Once you download the work item type XML files, you'll need to edit the resulting XML files to make whatever changes you need in the Work Items. There's some &lt;a href="http://msdn2.microsoft.com/en-us/library/ms195025(VS.80).aspx"&gt;good guidance at MSDN on making common Work Item Type edits&lt;/a&gt;:
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms400654(VS.80).aspx"&gt;Walkthrough: Make Basic Customizations to a Work Item Type &lt;/a&gt;
&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms195023(VS.80).aspx"&gt;Walkthrough: Make Advanced Customizations to a Work Item Type &lt;/a&gt;
&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms195028(VS.80).aspx"&gt;Walkthrough: Administer Fields in a Work Item Type &lt;/a&gt;
&lt;/ul&gt;
&lt;p&gt;
But editing raw XML still isn't my idea of a good time. You can make the experience slightly more pleasurable by adding IntelliSense to Visual Studio 2005 for Work Item Type XML. Rob Caron &lt;a href="http://blogs.msdn.com/robcaron/archive/2006/08/10/694874.aspx"&gt;describes how&lt;/a&gt;. It's quite easy.
&lt;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=56324"&gt;Download the process template schemas&lt;/a&gt; from the MSDN help topic Process Template Schemas Download. 
&lt;li&gt;extract the contents to: &lt;code&gt;%ProgramFiles%\Microsoft Visual Studio 8\Xml\Schemas&lt;/code&gt;
&lt;/ol&gt;
&lt;p&gt;
After you copy the schemas to the right place, restart the IDE and you'll discover some shiny new IntelliSense when you begin editing the Work Item XML:
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4543/original.aspx"&gt;
&lt;p&gt;
Once you're done making edits, validate your changes to make sure you didn't break anything. 
&lt;p&gt;
&lt;pre&gt;
witimport /f c:\task.xml /t %tfs% /p demo /v
&lt;/pre&gt;
&lt;p&gt;
Then, if you're happy with the validation results, remove the /v flag to import the work item.
&lt;p&gt;
&lt;pre&gt;
witimport /f c:\task.xml /t %tfs% /p demo
&lt;/pre&gt;
&lt;p&gt;
And you're done! Wasn't that easy? OK, I wouldn't call it easy, but it's not too painful.
&lt;p&gt;
If you want something even easier, like &lt;b&gt;a full-blown GUI tool to edit Work Item Types&lt;/b&gt;, you might want to check out the &lt;a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=812a68af-5e74-48c6-9623-1a4469142a84"&gt;VSTS Customization Toolkit&lt;/a&gt;. It has some quirks, but it has worked fairly well the few times I've tried it. And it definitely beats editing raw XML.
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4544" width="1" height="1"&gt;</description></item><item><title>Areas, Iterations, and Subscriptions</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/01/15/4479.aspx</link><pubDate>Mon, 15 Jan 2007 22:01:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4479</guid><dc:creator>jatwood</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4479.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4479</wfw:commentRss><description>&lt;p&gt;
Team Projects are designed to be large-- they should host &lt;i&gt;many&lt;/i&gt; solutions. Because Team Projects can be so large, that's why the Areas and Iterations dialog is so critical. &lt;b&gt;Areas and Iterations allow you to logically slice up large Team Projects in space and time.&lt;/b&gt; Setting up a project structure via Areas and Iterations is one of the most important jobs a project manager has.
&lt;p&gt;
If you're wondering what this should look like, Eric Lee posted &lt;a href="http://blogs.msdn.com/ericlee/archive/2006/08/09/when-to-use-team-projects.aspx"&gt;a great example of how Microsoft's internal VSTS development teams aggressively use Areas to logically divide a Team Project&lt;/a&gt;:
&lt;p&gt;
&lt;a href="http://vertigoblogs/photos/jatwood/images/4476/original.aspx"&gt;&lt;img src="/photos/jatwood/images/4477/original.aspx" border=0&gt;&lt;/a&gt;
&lt;p&gt;
&lt;b&gt;Areas and Iterations are important for another reason: they are one of the few places you can express hierarchy within work items.&lt;/b&gt; Outside of areas and iterations, work items are exclusively peer-to-peer. If you want to do any kind of reporting based on hierarchy, you'll need to set up an area or iteration to support it first.
&lt;p&gt;
One side-effect of slicing and dicing your large Team Projects is that project email alerts become problematic. The default UI for email alerts only allows you to subscribe to emails at the project level:
&lt;p&gt;
&lt;img src="/photos/jatwood/images/4478/original.aspx" border=0&gt;
&lt;p&gt;
On a large Team Project, it's unlikely you would want an email alert when anyone checks &lt;i&gt;anything&lt;/i&gt; in under the Team Project. You probably want email alerts for specific areas of the tree.
&lt;p&gt;
To do that, you'd normally &lt;a href="http://blogs.msdn.com/buckh/archive/2006/09/29/checkinevent-path-filter.aspx"&gt;use the bissubscribe.exe command-line tool, as described on Buck's blog&lt;/a&gt;. It seems straightforward enough:
&lt;p&gt;
&lt;pre&gt;
bissubscribe /eventType CheckinEvent /address someone@domain.com 
/deliveryType EmailHtml /server http://teamsystem:8080 
/filter "'Artifacts/Artifact[starts-with(@ServerItem, \"$/TeamProject/A\")]' &lt;&gt; null"
&lt;/pre&gt;
&lt;p&gt;
We'd just replace "$/TeamProject/A" with whatever path we're interested in. But there's one small problem: bissubscribe.exe is not installed on the client! It only exists on on the Team Foundation Server, at this path:
&lt;p&gt;
&lt;code&gt;C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup\bissubscribe.exe&lt;/code&gt;
&lt;p&gt;
That makes subscribing to events on a large Team Project somewhat.. problematic for the client, at least using the provided GUI. There's not even any way to browse your list of current subscriptions! There is Naren's &lt;a href="http://blogs.msdn.com/narend/archive/2006/07/26/679440.aspx"&gt;GUI tool for creating work item subscriptions&lt;/a&gt;, but we were unable to quite get it to work.
&lt;p&gt;
The good news is that you can &lt;b&gt;copy the bissubscribe.exe tool to the client&lt;/b&gt; and run it from there.
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4479" width="1" height="1"&gt;</description></item><item><title>Patching Team System to Service Pack 1</title><link>http://blogs.vertigosoftware.com/teamsystem/archive/2007/01/15/Patching_Team_System_to_Service_Pack_1.aspx</link><pubDate>Mon, 15 Jan 2007 21:00:00 GMT</pubDate><guid isPermaLink="false">fcb82b5c-78c7-46a5-b6ff-1ef27e7d7271:4475</guid><dc:creator>jatwood</dc:creator><slash:comments>34</slash:comments><comments>http://blogs.vertigosoftware.com/teamsystem/comments/4475.aspx</comments><wfw:commentRss>http://blogs.vertigosoftware.com/teamsystem/commentrss.aspx?PostID=4475</wfw:commentRss><description>&lt;p&gt;
Microsoft recently released &lt;a href="http://msdn.microsoft.com/vstudio/support/vs2005sp1/"&gt;Visual Studio 2005 Service Pack 1&lt;/a&gt;. The update patches &lt;i&gt;any&lt;/i&gt; version of Visual Studio, with the exception of the free Express Editions. It also patches &lt;b&gt;any client edition of Team System&lt;/b&gt;:
&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio 2005 Team Edition for Software Testers
&lt;li&gt;Visual Studio 2005 Team Edition for Software Architects
&lt;li&gt;Visual Studio 2005 Team Edition for Database Professionals
&lt;li&gt;Visual Studio 2005 Team Edition for Software Developers
&lt;/ul&gt;
&lt;p&gt;
Service Pack 1 fixes &lt;a href="http://support.microsoft.com/kb/918526/"&gt;tons of bugs in VS 2005&lt;/a&gt;, including many in Team Explorer, the essential client piece of Team System. I would install SP1 as soon as is practical for your team. Be warned, however: &lt;b&gt;Visual Studio 2005 Service Pack 1 can be painful to install&lt;/b&gt;. It takes massive amounts of disk space and memory to install successfully, and can take longer to install than Visual Studio 2005 itself! As &lt;a href="http://blogs.msdn.com/heaths/archive/2007/01/11/known-issues-with-visual-studio-2005-service-pack-1.aspx"&gt;documented on Heath Stewart's blog&lt;/a&gt;, these two problems are common. We've experienced them at Vertigo, and I've heard from clients who have run into them as well.
&lt;p&gt;
&lt;ol&gt;
&lt;li&gt;You receive the error "File '...' was rejected by digital signature policy". Follow &lt;a href="http://blogs.msdn.com/heaths/archive/2007/01/11/workaround-for-error-1718.aspx"&gt;Heath's registry edit workaround&lt;/a&gt;.
&lt;li&gt;During the SP1 install you run out of disk space. &lt;a href="http://blogs.msdn.com/heaths/archive/2006/11/28/save-time-and-space-for-vs-2005-sp1-by-disabling-the-patch-cache.aspx"&gt;Disable the patch cache&lt;/a&gt; to remove redundant file backups during the patch and dramatically speed up the install process. Jon Galloway &lt;a href="http://weblogs.asp.net/jgalloway/archive/2006/12/19/things-i-wish-i-d-known-before-i-installed-vs-2005-service-pack-1.aspx"&gt;put together a little batch file&lt;/a&gt; which automatically disables the patch cache during the install, then reinstates it after the patch. I highly recommend using this batch file to install SP1.
&lt;p&gt;
&lt;pre&gt;
reg export HKLM\Software\Policies\Microsoft\Windows\Installer installer.reg
reg add HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /t REG_DWORD /d 0 /f
net stop msiserver
start /wait VS80sp1-KB926601-X86-ENU.exe
reg delete HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /f
reg import installer.reg
net stop msiserver
del /q installer.reg 2&gt;nul
&lt;/pre&gt;
&lt;/ol&gt;
&lt;p&gt;
In general, &lt;b&gt;make sure you have tons of free disk space before installing SP1&lt;/b&gt;, and &lt;b&gt;set aside a least an hour for the actual install&lt;/b&gt;. You do have to babysit it, because it'll prompt you for each update it installs.
&lt;p&gt;
There's also a companion &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=A9AB638C-04D2-4AEE-8AE8-9F00DD454AB8&amp;displaylang=en"&gt;Service Pack 1 update for Team Foundation Server&lt;/a&gt; as well. It is, thankfully, &lt;i&gt;much&lt;/i&gt; easier to install than Visual Studio 2005 SP1. I've had no problems whatsoever installing the TFS SP1 patch, but I do have a few notes on the install.
&lt;p&gt;
&lt;ol&gt;
&lt;li&gt;You do not need to patch the server and client at the same time. It's perfectly fine to have SP1 clients talk to a non-SP1 server, or vice-versa. They can be installed completely independently.
&lt;li&gt;You must &lt;i&gt;always&lt;/i&gt; install &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c18c756e-8f80-4987-b3bf-600068a9e3c4&amp;DisplayLang=en"&gt;KB919156&lt;/a&gt; before SP1, so go ahead and download that first.
&lt;li&gt;If you have seperate tiers for build, data, and web, you must install the patch on each tier. It doesn't appear to matter what order you patch them in.
&lt;/ol&gt;
&lt;p&gt;
The full list of fixes for TFS SP1 can be found in these two posts (&lt;a href="http://blogs.msdn.com/bharry/archive/2006/09/28/775891.aspx"&gt;one&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/bharry/archive/2006/12/19/update-on-bug-fixes-in-tfs-sp1.aspx"&gt;two&lt;/a&gt;) by Brian Harry.
&lt;p&gt;
Good luck and happy patching!
&lt;p&gt;&lt;img src="http://blogs.vertigosoftware.com/aggbug.aspx?PostID=4475" width="1" height="1"&gt;</description></item></channel></rss>