Deploying SSRS reports using WIX installer

We have number of ways to deploy the SSRS RDLs like

(1) Uploading the RDLs from Report Manager

(2) Deploying from BIDS

(3) Using RS.EXE and RSS scripts

(4) Calling SSRS web service from a custom .NET application

Though first & second approaches are simple, they are manual and hence error prone. Also they can be taxing when you have to load lot of reports. We can consider this approach in DEV environment. Certainly not in QA or Production.

While the last two options are very helpful in automating the deployment, one of the challenge is that the DEV has to prepare the build i.e. DEV has to put the RDLs, RSS scripts and other supporting files in proper folders and send it to the QA/Production team.

An installer can help us in this scenario as it can

a)  Package the required files

b) Control the execution sequence

c) Accept user inputs

We choose to go with WIX , an open source installer from Microsoft.

Our SSRS deployment is based on the following utilities

RS.EXE + RSS scripts — to deploy the RDLs, Create Folders in Report Server etc

WIX — to create installer and call the RS.EXE

The first step is to get the WIX. The current version is 3.5. Once you install the WIX you can use the Visual Studio to create the WIX project.

The Report solution looks like below (WIX project is added to the SSRS solution)

Have a look at post 1 & post 2 to understand the WIX project structure and its components.

We have to give instructions to the WIX to

a) check for installation condition like product not installed already, prerequisites are already available etc

b) create folders and extract the packaged files

c) call the RS.EXE with necessary parameter

d) control the execution flow

All these instructions are coded in the WXS files.

In our solution the Product.wxs holds the product information like name of the installer, version , prerequisite and etc.

The Report.wxs contains the code to copy the RSS scripts to the folders and also calls RS.EXE to create a folder in Report Server

The MyReports.wxs has the instruction to copy the RDLs in the report projects and the call to RS.EXE to upload the RDLs to report server.

The ProductUI.wxs is used to create the user interface to accept inputs from user.

And the installer looks like

the above one is welcome screen and the below one is where user can select which report to deploy

the below screen captures the report server where the report has to be deployed and also the data source which needs to be assigned to the reports.

If you would like to explore this, download the code for the above samples (MyReports.Zip) from here. You need to have Visual Studio 2008 SP1 + WIX 3.5 to try it out.

Advertisements

About Suresh Kumar D

Hardcore SQL Developer and aspiring Database Architect.
This entry was posted in SSRS. Bookmark the permalink.

26 Responses to Deploying SSRS reports using WIX installer

  1. ip camera says:

    You precisely saved me atleast 1 hour of time. I am making a project in this particular topic and your contribute has helped me through one of the topics of my project. I will browse to the other pages now.

  2. Tushar says:

    Can you please give us the sample project? the sample project link is not working. And also i do not want to write each and every file one by one the MyReports.wxs. so please help me on that issue too..

    Thanks in advance….

    Tushar

  3. Ziah says:

    Could you send the sample project? It looks like it will be very useful to me.

  4. Ross says:

    do you have alternate location of the sample? Skydrive is blocked in my company network. 😦

  5. Paul Hayes says:

    Suresh Kumar D,
    I am blocked from downloading the sample project….can you send via email?
    I am at paul.hayes@itt.com and/or paul.hayes@exelisinc.com.
    thanks,
    paul

    • Paul Hayes says:

      Suresh Kumar D,
      Thank you for sending the email with attached *.zip file. It was unfortunately blocked as well by our virus police…..can you change the suffix to something besides .zip and resend…..apologies for imposing on your generosity and hospitality.
      thanks,
      paul

      • Paul Hayes says:

        Suresh Kumar D,
        Nevermind…found a work-around. Thanks again for the generosity of your time and efforts.
        paul

      • Paul Hayes says:

        Hello Suresh Kumar D,

        I am playing with your sample project as a learing exercise; since it seems similar to something I would like to accomplish. As is likely obvious, I am extremely inexperienced with SQL, WIX, etc.

        I am experimenting on a machine with SQL Express (SQL Server 2008 R2) installed. When I attempt to start Debugging from Visual Studio, the output says:

        “========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ==========
        ========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========”

        However, the “myDBS – Report Viewer” page that comes up in IE says:

        “An error has occurred during report processing. (rsProcessingAborted)
        Cannot create a connection to data source ‘dsMyDb’. (rsErrorOpeningConnection)
        A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) ”

        Can you offer any additional advice on how to get past these issues, recommended links, etc……keeping in mind that I am definitely a newby?

        Apologies for my ignorance of the subject matter.

        thanks,
        paul

  6. Satish says:

    can you please send sample project….

  7. soundar says:

    Hi, suresh . I need your guidance for this SSRS deployment using wix.

  8. Selva says:

    Hi, Suresh,

    I’m new to WIX, i’m referencing your article as a reference, I need an example with two folders each one contains two .rdl files, can u please modify the code, it ll be useful for further learning process, andalso kindly give comments for each steps in the given file.

    Thanks,
    Selva

  9. Selva says:

    Suresh, When i deploy .rdl files some of them are not getting deployed. How to check and overcome this Issue. Kindly reply.

  10. Danang. says:

    Hi Suresh,

    good article. can I get the source code of the sample? I can’t download from the link above.

    Thanks.
    Danang.

  11. Gaurav Paliwal says:

    g8 article. can I get the source code of the sample?

  12. Oren says:

    Great explanation. Can you please send me the source code?

  13. Prashant Chaubey says:

    Can you please give us the sample project? the sample project link is not working. And also i do not want to write each and every file one by one the MyReports.wxs. so please help me on that issue too..

  14. David Morris says:

    Thank you for posting this sample. I had some trouble downloading, which I think may be related to MS renaming SkyDrive. I found that this URL got me to your public folder:

    https://onedrive.live.com/?cid-aa5e6610879d8500&id=aa5e6610879d8500

    Hopefully, this will help others having difficulty with the download.

    –David Morris

  15. Ravi Roy says:

    Hi, I am getting an error on build “The following files are deprecated and should be removed from your project(s): Product.Generated.wxs”.

    Can you help me out on this error please.

  16. Ravi Roy says:

    Also how do I include more than one rdl files in setup?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s