Where do I deploy my custom assemblies when working with SQL Reporting Services 2005?


There is a change from 2000 here, and it’s not documented in Book Online yet. To further confuse matters, in some earlier builds of Yukon\Whidbey you’ll actually find multiple copies of RSReportDesigner.Config on your disk, so you can’t always key on it’s location.


On the report server, copy the file to the \Reporting Services\ReportServer\bin folder, just like you always have. You still use \Reporting Services\ReportManager\Bin, too.


On the client where you design your report, the best idea is to search for Microsoft.ReportingServices.Designer.dll. You’ll probably land in C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies. Your custom assembly and RSReportDesigner.Config file should live with the designer assembly, and you can ignore other instances of RSReportDesigner.Config you might find elsewhere (like in C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE)



 


Comments (5)

  1. Gabriel says:

    And where to deploy/register a custom control when it’s used into a report running in LOCAL MODE?

  2. russch says:

    Sorry, I’ve been a slacker. From what I understand, best practices are to strongly name the custom assembly then drop it in the GAC…Then, in our client side code, you make the assembly "trusted", by calling ReportViewer.LocalReport.AddTrustedCodeModuleInCurrentAppDomain()…For this call to work you first must have told the reportviewer to execute in the appdomain of the current app, which you do with ExecuteReportInCurrentAppDomain()

  3. genau says:

    Hi, further to the original question of where to deploy assemblies when in LOCAL MODE, is the only solution to sign and deploy them to the GAC?

    Is there no simpler way of referencing a custom assembly from an RDLC without requiring the above process?

    Thanks…

  4. russch says:

    I have been told you can drop the assembly in your bin folder, but I haven’t tried it myself. Regardless of where you drop it, you’ll need to use AddTrustedCodeModuleInCurrentAppDomain(), etc.