Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8725763
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T08:06:23+00:00 2026-06-13T08:06:23+00:00

We are upgrading our report server from SSRS 2005 to SSRS 2008 R2. I

  • 0

We are upgrading our report server from SSRS 2005 to SSRS 2008 R2.
I have an issue with CSV export rendering for SSRS 2008 where the SUM of columns are appearing on the right side of the detail values in 2008 instead of the left side like in 2005 as shown in the below blocks.
117 and 131 are the sums of Column2 and Column3 respectively.

SSRS 2005 CSV Output

Column2_1,Column3_1,Column2,Column3
117,131,1,2
117,131,1,2
117,131,60,23
117,131,30,15
117,131,25,89

SSRS 2008 CSV Output

Column2,Column3,Column2_1,Column3_1
1,2,117,131
1,2,117,131
60,23,117,131
30,15,117,131
25,89,117,131

I understand that the CSV renderer has gone through major changes in SSRS 2008 R2 with the support for charts and gauges and more importantly it provides 2 modes: the default Excel mode and Compliant mode. But neither mode helps fix this issue. The Compliant mode was supposed to be closest to that of 2005 but apparently it is not close enough for my case.

My Question:
Is there a way to force SSRS 2008 fall back a report to a backward compatibility mode so that it exports into a 2005 CSV format?

Solution tried:
a) Using 2005-based CRIs
Based on this article on ExecutionLog2, if SSRS 2008 R2 encounters a report whose auto-upgrade is not possible (e.g. reports that were built with 2005-based CustomReportItem controls), those particular reports will be processed with the old Yukon engine in a “transparent backwards-compatibility mode”.

It seems like it falls back to its previous version mode (2005) and attempts to render it.
So I tried using a 2005-based barcode CustomReportItem and deployed to a SSRS 2008 R2 report server, but it shows the same result as before though it suppressed the barcode. This would be because SSRS 2008 R2 finds a way to suppress part of the report output and displays the rest.
It would be great to find a 2005-based CRI that makes SSRS 2008 R2 process it with its old Yukon engine.
Please note that quite possibly, even if it uses the “old Yukon processing engine”, it might still use the new CSV renderer hence it shows the same output. If that is true, then this option is moot.

b) Using XML renderer
We can use a custom XML renderer and then use XSLT to convert the xml to appropriate CSV but this would mean that we need to convert all our 200 reports. Hence this is not feasible.

Please note that we do not have the option of having SSRS 2005 and SSRS 2008 R2 deployed side by side.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T08:06:25+00:00Added an answer on June 13, 2026 at 8:06 am

    Your question triggered me to finally go out and try to write a custom RenderingExtension. The answer here would be to create an extension that “wraps” the old SSRS 2005 CSV rendering extension and makes it available under a new name in SSRS 2008.

    I certainly think it’s possible to do this. Unfortunately, I don’t have the 2005 SSRS DLL’s, so I did my proof of concept by creating an extension that wraps the 2008 CSV renderer. After quite a struggle I finally got this to work. Maybe this answer will help you in implementing this analogously for the 2005 CSV renderer.

    A few notes up front:

    • All kudo’s should go to “Broes“, who wrote an excellent tutorial on his blog for a similar case on PDF watermarks (part 1, part 2), which was invaluable in creating the extension.
    • Microsoft warns about writing an extension that “Writing a custom rendering extension is difficult”, and even though they’re talking about an extension that actually does something (besides wrapping a default extension), I found just getting the thing to work can be quite a pain as well.

    So here are the basic steps:

    1. Create a new class library (.NET 3.5, not 4.0+) with a new class (see code below).
    2. Add a reference to:
      1. Microsoft.ReportingServices.DataRendering (for the default CSV renderer)
      2. Microsoft.ReportingServices.Interfaces
      3. Microsoft.ReportingServices.ProcessingCore
    3. Create a private instance of the CsvReport renderer, initialize it in the constructor.
    4. Implement the IRenderingExtension interface in your class. Route all method calls to the private instance of the wrapped renderer.
    5. Edit the properties of the project to sign it with a strong name.
    6. Compile.
    7. Copy the DLL to the ReportServer bin.
    8. Edit the rssrvpolicy.config file to include your assembly in a CodeGroup element.
    9. Edit the rsreportserver.config file to include the extension.
    10. Reboot the SSRS service.
    11. (Optional) Pray, or light a candle.
    12. Open a report in the report manager, and verify that your extension is there:

    Screenshot of the renderer

    Here’s the code listing for the class that wraps the default CSV renderer:

    using Microsoft.ReportingServices.Interfaces;
    using Microsoft.ReportingServices.OnDemandReportRendering;
    
    namespace Ssrs2005CsvRenderingExtension
    {
        public class Csv2005Renderer : IRenderingExtension
        {
            private IRenderingExtension oldskoolCsvRenderer;
    
            public Csv2005Renderer()
            {
                oldskoolCsvRenderer = new Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport();
            }
    
            public void GetRenderingResource(CreateAndRegisterStream createAndRegisterStreamCallback, 
                                             System.Collections.Specialized.NameValueCollection deviceInfo)
            {
                oldskoolCsvRenderer.GetRenderingResource(createAndRegisterStreamCallback, deviceInfo);
            }
    
            public bool Render(Microsoft.ReportingServices.OnDemandReportRendering.Report report,
                               System.Collections.Specialized.NameValueCollection reportServerParameters, 
                               System.Collections.Specialized.NameValueCollection deviceInfo, 
                               System.Collections.Specialized.NameValueCollection clientCapabilities,
                               ref System.Collections.Hashtable renderProperties, 
                               CreateAndRegisterStream createAndRegisterStream)
            {
                return oldskoolCsvRenderer.Render(report, 
                                                  reportServerParameters, 
                                                  deviceInfo, 
                                                  clientCapabilities, 
                                                  ref renderProperties, 
                                                  createAndRegisterStream);
            }
    
            public bool RenderStream(string streamName, 
                                     Microsoft.ReportingServices.OnDemandReportRendering.Report report, 
                                     System.Collections.Specialized.NameValueCollection reportServerParameters, 
                                     System.Collections.Specialized.NameValueCollection deviceInfo, 
                                     System.Collections.Specialized.NameValueCollection clientCapabilities, 
                                     ref System.Collections.Hashtable renderProperties, 
                                     CreateAndRegisterStream createAndRegisterStream)
            {
                return oldskoolCsvRenderer.RenderStream(streamName,
                                                        report,
                                                        reportServerParameters,
                                                        deviceInfo,
                                                        clientCapabilities,
                                                        ref renderProperties,
                                                        createAndRegisterStream);
            }
    
            public string LocalizedName
            {
                get { return "Oldskool CSV renderer"; }
            }
    
            public void SetConfiguration(string configuration)
            {
                oldskoolCsvRenderer.SetConfiguration(configuration);
            }
        }
    }
    

    This is the extension as added to the rsreportserver.config:

    <Extension Name="OLDSKOOLCSV" Type="Ssrs2005CsvRenderingExtension.Csv2005Renderer,Ssrs2005CsvRenderingExtension"/>
    

    And this is the configuration xml for rssrvpolicy.config as I used it:

    <CodeGroup
            class="UnionCodeGroup"
            version="1"
            PermissionSetName="FullTrust"
            Name="OldskoolCsvGroup"
            Description="Code group for oldskool csv extension">
        <IMembershipCondition 
                class="UrlMembershipCondition"
                version="1"
                Url="C:\Program Files\Microsoft SQL Server\MSRS10.SQLSERVER\Reporting Services\ReportServer\bin\Ssrs2005CsvRenderingExtension.dll"
        />
    </CodeGroup>
    

    One script that was very useful for quick testing if things worked (mainly because it involved a lot of trial and error), which I execute with the RS Utility:

    Public Sub Main()
        Dim items() As Extension
        items = rs.ListExtensions(1)
    
        For Each item As Extension In items
            Console.WriteLine(item.Name)
        Next item
    End Sub 
    

    And that’s it. At least it’s all the important stuff I can still remember after a few hours of trial and error. To finish with one final note:

    • The Application Event Log sometimes contains SSRS errors. One of them was “SSRS cannot load the … extension”. This was the last hurdle I cleared, and I cleared it by changing the target framework from .NET 4.0 down to 3.5.

    Should anyone attempt this with the actual 2005 CSV rendering DLL: let us know whether it was succesful with a comment or an edit to the answer.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

We've been successful in upgrading our SSRS servers from 2005 to 2008. Now when
we would like to upgrade our SQL Server from 2005 to 2008. Unfortunately, we
I've been upgrading our solutions from VS 2005 to VS 2008; still targeting the
We're in the process of upgrading one of our SQL Server instances from 2000
I'm investigating the possibility of upgrading our SQL Server from SQL Server 2000 to
We are considering upgrading our production server from Ubuntu- desktop 10.04 to Ubuntu- server
We are just upgrading our ASP.Net shop implementation (from simple one) to structure that
We are upgrading our XL C/C++ compiler from V8.0 to V10.1 and found some
We are upgrading our application from Delphi 2007 to Delphi XE2, which includes unicode
I have started upgrading one of our internal software applications, written in ASP.NET Web

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.