SSRS Reports Versioning

Unfortunately there currently is no built-in functionality similar to a dll assembly version for RDL files.

The only way to get some kind of version information is to query the last modified date of the RDL file on the server via C# or VB.Net. You could do this using the ReportingServices webservice.

You could also implement a custom function which updates some field in your database to the current date each time the RDL file modified.

The problem with all the file modified information: You still don't know which version is on which server, you just know when it was uploaded/modified.

See the following pages for some more information - unfortunately no solution:

  • SSRS 2005 Can I dynamically determine when .rdl file was last modified
  • .RDL "Version" properties like in ".DTSX" files

In my reports, I create a variable named Version and make it a string data type (and move it to the top of the variable list). Every time I change a report, I update the Version variable based on Semantic Versioning.

Then, I can query my Report Server and look at the Parameter field of the ExecutionLog table and I can see what version was run. Technically I take care of all of this in an SSIS job that writes to another table, but that's a little outside the scope here.