Posts

About Release Management for TFS Update 2

If you plan on upgrading your Release Management installation from update 1 to update 2, here is a bit of advice: Do not. I tried in our internal installation, and everything broke down. The worst part was the TFS integration. It was no longer possible to link a TFS build definition to a release template, rendering them completely useless. And since RM for TFS is all about release template, the whole release infrastructure was absolutely blocked. I will wait for the next update and hope Microsoft will fix these issues. As a side note, deploying a brand new Update 2 installation did not fix the TFS issues, so apparently it is not related to the upgrade process. EDIT (2014-08-22): I have upgraded to Update 3 without problem. It was probably a bug corrected in the last version. 

Completely remove an application tier from TFS 2012

If you ever wondered if it is possible to completely remove an application tier from the TFS Administration Console , here is an answer for you. Yes, but it is tricky and may result in a broken TFS installation. It involves messing with the catalog in the TFS_Configuration database. As a disclaimer, this method is absolutely not supported. Not by me, not by my company, not by Microsoft. Use at your own risks. So if you decide to reproduce the steps I am going to describe, please BACK UP your TFS installation (especially the Tfs_Configuration database). Now, a little bit of context before starting, TFS uses a set of tables known as the catalog to keep track of the different pieces of your installation. It contains a lot of things including the databases, the servers, the web applications, etc. Whenever you had a new piece to the installation (app tier, reporting tier, etc.) it goes into the catalog. Our problem is that for the moment there is no way to tell when you completely ...

Error when running the TFS Best Practices Analyzer with an account containing a dollar ($) sign

I recently tried to run the TFS BPA using an account containing a dollar ($) sign. It was something like "user$name". I ended up with a rather strange error message looking like the following: Cannot validate the URL provided The scan was generated using the corrected URL "%TFSServerURLValidated%". A quick look at the "Other reports" section of the scan results, I found that the tool was trying to find files in the following directory: c:\Users\ user \AppData\Roaming\Microsoft\TfsBpa\[...] The important part is highlighted. It seems that some of the PowerShell scripts are analyzing the account name as the literal user followed by a variable named $name , instead of interpreting the whole account name as a literal. As I didn't want to go through the various PS scripts in the BPA installation directory, I decided to take the lazy approach. I created a symbolic link C:\Users\user pointing to C:\Users\user$name\ using the following c...

Error TF400324 when starting the Visual Studio Test Controller

I recently had a problem starting the Test Controller Configuration Tool. There was no error, but it simply hung on the loading state. A quick look at the event log showed three errors. The most important one was: The Controller service could not be started. TF400324: Team Foundation services are not available from server: [redacted URL] The URL was referring to an old team project collection. I actually wanted to use the Configuration Tool to change this URL. Since I could not attach the controller to another collection by using the Configuration Tool, I started to look around to find where the configuration itself was stored. The answer is an XML file named QTControllerConfig.xml located in C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE. I opened the file, replaced the content with this: <? xml version = " 1.0 " encoding = " UTF-8 " ?> < ControllerConfiguration xmlns = " http : // microsoft.com /schemas/VisualStudio/TeamTe...

Visual Studio TFS 2012 and Web Deployment Packages

Image
If you have been using Visual Studio 2010 and TFS to build Web Deployment packages (usable with MS Deploy), there is in the project properties a parameter for the name of the Web application in IIS. The parameter is available in the Package/Publish Web section under IIS Web site/application name to use on the destination server . Unfortunately this parameter is not available in Visual Studio 2012. You can specify it when using the Publish feature (by right-clicking on the project) but if you want to set up builds in TFS, you will end up with an application in IIS with a _deploy suffix. One possible solution is to add an additional parameter to the MSBuild command to update the IIS Web Application name. In the process properties of the build definition, update the DeployIisAppPath in the MSBuild arguments: MSBuild additional arguments

Entity Framework and TFS Build

I recently had an issue when trying to configure automatic deployments in TFS. I was building a MS Deploy package with one build definition and deploying it with another. The application was based on ASP.NET MVC with Entity Framework as a ORM When I tried to open the application on the target server, I got an error "Unable to load the specified metadata resource". The entity data model was configured to store the model files as resources into the assembly. The error was caused by the fact that the build process was no longer executing the packaging step. Usually Visual Studio does it automatically for you but MSBuild is not so kind. You have to manually tell it to execute the EntityDeploy step. I added an instruction in the project file (containing the data model) to execute the packaging step. < Target Name = " AfterBuild " > < EntityDeploy Sources = " Models\DataModel.edmx " outputPath = " . " > </ EntityDeploy ...

.NET 4.0 version of InformationBox

At long last, a .NET 4.0 version of InformationBox was published on CodePlex! As you might expect, it now supports the optional and named parameters making it a little easier to read the code. You can grab the latest source code release from here: http://infobox.codeplex.com/SourceControl/list/changesets