Skip to main content

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=3.0.0.0, Culture=neutral, PublicKeyToken=13d7c658a290ad85’. Details: Could not load file or assembly 'Conchango.TeamSystem.Metrics, Version=3.0.0.0, 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. 

Popular posts from this blog

.NET 8–Keyed/Named Services

A feature that a lot of IoC container libraries support but that was missing in the default DI container provided by Microsoft is the support for Keyed or Named Services. This feature allows you to register the same type multiple times using different names, allowing you to resolve a specific instance based on the circumstances. Although there is some controversy if supporting this feature is a good idea or not, it certainly can be handy. To support this feature a new interface IKeyedServiceProvider got introduced in .NET 8 providing 2 new methods on our ServiceProvider instance: object? GetKeyedService(Type serviceType, object? serviceKey); object GetRequiredKeyedService(Type serviceType, object? serviceKey); To use it, we need to register our service using one of the new extension methods: Resolving the service can be done either through the FromKeyedServices attribute: or by injecting the IKeyedServiceProvider interface and calling the GetRequiredKeyedServic...

Azure DevOps/ GitHub emoji

I’m really bad at remembering emoji’s. So here is cheat sheet with all emoji’s that can be used in tools that support the github emoji markdown markup: All credits go to rcaviers who created this list.

Kubernetes–Limit your environmental impact

Reducing the carbon footprint and CO2 emission of our (cloud) workloads, is a responsibility of all of us. If you are running a Kubernetes cluster, have a look at Kube-Green . kube-green is a simple Kubernetes operator that automatically shuts down (some of) your pods when you don't need them. A single pod produces about 11 Kg CO2eq per year( here the calculation). Reason enough to give it a try! Installing kube-green in your cluster The easiest way to install the operator in your cluster is through kubectl. We first need to install a cert-manager: kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.5/cert-manager.yaml Remark: Wait a minute before you continue as it can take some time before the cert-manager is up & running inside your cluster. Now we can install the kube-green operator: kubectl apply -f https://github.com/kube-green/kube-green/releases/latest/download/kube-green.yaml Now in the namespace where we want t...