Access Report Viewer DLL Files for your Application
If an application requires the use of Report Viewer Redistributable and needs access to specific .dlls for the application to run, you’ll find this post helpful, http://drowningintechnicaldebt.com/blogs/dennisbottjer/archive/2006/10/16/Hacking-Report-Viewer-Redistributable.aspx.
It explains how to extract the necessary .dll files so you can reference them in your application and avoid GAC security errors (e.g., Could not load file or assembly ‘Microsoft.ReportViewer.Common, Version=188.8.131.52, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. The module was expected to contain an assembly manifest.)
I will outline the steps below to avoid another click. 😉 I have also added links for the most recent versions of Report Viewer.
Download Report Viewer Redistributable
Report Viewer 2005 – http://www.microsoft.com/downloads/details.aspx?familyid=8a166cac-758d-45c8-b637-dd7726e61367&displaylang=en
Report Viewer 2008 – http://www.microsoft.com/downloads/details.aspx?familyid=CC96C246-61E5-4D9E-BB5F-416D75A1B9EF&displaylang=en
Report Viewer 2008 SP1 – http://www.microsoft.com/downloads/details.aspx?familyid=BB196D5D-76C2-4A0E-9458-267D22B6AAC6&displaylang=en
Use favorite Zip Utility to extract the MSI.exe to a folder of your choice
Find the file ReportV1.cab in extract folder from step #2
Use favorite Zip Utility to extract ReportV1.cab to a folder of your choice
Open the new folder from step 4 and find 4 files
Rename: FLMicrosoftReportViewerCommondll117718X86.3643236FFC7011D3A5360090278A1BB8 To Microsoft.ReportViewer.Common.dll
Rename: FLMicrosoftReportViewerProcessingObject125592X86.3643236FFC7011D3A5360090278A1BB8 To Microsoft.ReportViewer.ProcessingObjectModel.dll
Rename: FLMicrosoftReportViewerWebFormsdll117720X86.3643236FFC7011D3A5360090278A1BB8 To Microsoft.ReportViewer.WebForms.dll
Rename: FLMicrosoftReportViewerWinFormsdll117722X86.3643236FFC7011D3A536_0090278A1BB8 To Microsoft.ReportViewer.WinForms.dll
Copy these dlls to your smart client project and reference them
Now they will be part of the Smart Client’s Build Output and Click Once Deployment
I hope this makes someone’s life a little easier!