Wednesday, September 29, 2010

Failed to create a new Team Project using the Scrum for Team System template

On our test TFS server, creating a new project using the great Scrum for Team System template failed. In the log file I found following information:

Creating reports on the SQL Server Reporting Services on http://tfstest/ReportServer/ReportService2005.asmx.

The reason for the failure cannot be determined at this time. Because the operation failed, the wizard was not able to finish creating the SQL Server Reporting Services site.

Stack Trace:

at Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.Execute(ProjectCreationContext context, XmlNode taskXml)  
at Microsoft.VisualStudio.TeamFoundation.ProjectCreationEngine.TaskExecutor.PerformTask(IProjectComponentCreator componentCreator, ProjectCreationContext context, XmlNode taskXml)
at Microsoft.VisualStudio.TeamFoundation.ProjectCreationEngine.RunTask(Object taskObj)

--   Inner Exception   --

Exception Message: TF30225: Error uploading report 'Product Burndown Chart By Day': System.Web.Services.Protocols.SoapException: Error while loading code module: ‘Conchango.TeamSystem.Metrics, Version=, Culture=neutral, PublicKeyToken=13d7c658a290ad85’. Details: Could not load file or assembly 'Conchango.TeamSystem.Metrics, Version=, Culture=neutral, PublicKeyToken=13d7c658a290ad85' or one of its dependencies. The system cannot find the file specified.

at Microsoft.ReportingServices.WebServer.ReportingService2005Impl.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, Warning[]& Warnings)
at Microsoft.ReportingServices.WebServer.ReportingService2005.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, Warning[]& Warnings) (type ReportingUploaderException)

Exception Stack Trace:   

at Microsoft.TeamFoundation.Client.Reporting.ReportingUploader.UploadReport(XmlNode report)
at Microsoft.TeamFoundation.Client.Reporting.ReportingUploader.HandleCreateReports(XmlNode node)
at Microsoft.TeamFoundation.Client.Reporting.ReportingUploader.Run()
at Microsoft.VisualStudio.TeamFoundation.RosettaReportUploader.Execute(ProjectCreationContext context, XmlNode taskXml)

The problem is that the Metrics assembly isn’t installed on the application server. Normally this should be done automatically if the installer discovers a reporting services instance on the target machine.

A solution is to install and register this file yourself.

Get the file:

  1. Create an output directoy.
  2. Launch the installer and keep it open.
  3. Find the "ScrumForTeamSystem.msi" file that is written to the default temp location.
  4. Use the MSIEXEC command line utlity to extract the contents of the MSI.
    MSIEXEC /a "ScrumforTeamSystem.msi" /qb TARGETDIR={OUTPUTDIR}
  5. Find the "Conchango.TeamSystem.Metrics.dll" assembly.
    Located at: {OUTPUTDIR}\ProcessTemplate\Conchango.TeamSystem.Metrics.dll

Register the file:

  1. Open a Visual Studio Command prompt
  2. Run GacUtil /i {OUTPUTDIR}\ProcessTemplate\Conchango.TeamSystem.Metrics.dll to register the assembly in the Global Assembly Cache. 


Anonymous said...

Just what I was looking for.
Worked just as written.

Crash8308 said...

What installer do I launch initially?

levidos said...

Thanks for the post. My issue was migrating a project from one TFS server to another. Lately, the Dll file in ScrumForTeamSystem.msi is called ScrumForTeamSystem.Metrics.dll so I had to go back to the old server, go to c:\windows\installer and find the original msi and get the Conchango dll from it.