If you are a developer trying to build or maintain a project, do not manually copy DLLs. Use NuGet:
Open your Package Manager Console and run:
Install-Package Microsoft.ReportViewer.Common -Version 9.0.0
Alternatively, for the full runtime:
Install-Package Microsoft.ReportViewer.Runtime.WinForms -Version 9.0.0
This will pull the correct assemblies into your project's packages folder and, if configured correctly, copy them to your build output.
Cause: The ReportViewer control tries to access unmanaged code or certain registry keys, which may be blocked on locked-down systems. microsoft.reportviewer.common version 9.0.0.0 download
Solution:
caspol (Code Access Security Policy) to grant FullTrust to the ReportViewer assemblies:
caspol -m -ag 1 -url "C:\Program Files\Microsoft Visual Studio 10.0\ReportViewer\*" FullTrust
If you have both version 9.0.0.0 and a newer version (e.g., 12.0) referenced, add a binding redirect: Technical Brief: Microsoft
<dependentAssembly>
<assemblyIdentity name="Microsoft.ReportViewer.Common" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
</dependentAssembly>
A: Yes. The correct token is fixed for all official Microsoft ReportViewer assemblies. Any different token means the file is tampered with or from a third party. Delete it immediately.
Run the .exe or .msi with administrator privileges. This will: This will pull the correct assemblies into your
Common assembly in the GAC.C:\Program Files (x86)\Microsoft Visual Studio 10.0\ReportViewer