我的项目中有ReportViewer。当我在Vsual Studio 2012的InstallShield中创建此文件的.exe时,我添加到Redistributables Microsoft ReportViewer 2010
。
当我在Windows 8上安装我的应用程序时 - 每个ReportViewer都会正确显示它的报告。
我在Windows XP
上有问题,ReportViewer正确加载但是显示此错误而不是正确的报告:
本地报告处理期间发生错误。的定义 报告"是无效的。报告中出现意外错误 处理
无法加载文件或程序集 Microsoft.ReportViewer.ProcessingObjectMode。版本= 11.0.0。, Culture = neutral,PublicKeyToken = 89845dc8080cc91或其中一个 依赖。这个系统找不到指定的文件。
我在references I have added Microsoft.ReportViewer.Winfroms 11.0.0.0
和Copy Local = true
确认您。
我该如何解决这个问题?
答案 0 :(得分:15)
我赞成了标记为答案的答复,因为我实际上是缺少.dlls - 但我没有以@Marek建议的方式修复它。我正在使用VS2013并安装Microsoft.Reporting nuget包修复了这个问题。我会建议任何有这个问题的人尝试这个。这样,您就可以自动获得所有依赖项。
答案 1 :(得分:11)
发现此错误表示您遗漏了Microsoft.ReportViewer.PorcessingObjectMode.dll
version 11.0.0.0
。有一个解决方案:
在Windows 8
机器上执行以下操作:
打开dos命令提示符(按START + R然后键入cmd并按ENTER键)
输入cd ..
,直到您C:\ >
输入Cd windows\assembly\gac_msil\Microsoft.ReportViewer.pro*
并按Enter键
只需输入cd 11*
然后输入copy * c:\
.dll
将被复制到您的C
目录。
只需将此文件复制到Program Files
Windows XP machine
上已安装应用程序的文件夹中。
希望它对其他人有帮助,因为我长期坚持这个问题。
答案 2 :(得分:1)
Marek的答案非常棒并且帮助了我,我只是想添加一个我需要的额外文件。
除了Microsoft.ReportViewer.ProcessingObjectModel.dll
我还需要
Microsoft.SqlServer.Types.dll
(我是从拥有SQLServer但不是Reporting Services 的服务器上运行的,所以也许这就是第二个文件丢失的原因。)
正如Marek所指出的,您需要使用命令提示符复制文件,因为GAC_MSIL中的DLL在Windows资源管理器中是隐藏的,因此如果使用资源管理器搜索它们,您将看不到它们。
我很难过,因为我正在生成一个带有日常任务的PDF,所以我在日志文件中看到的只是隐秘的错误"An error occurred during local report processing."
我从未见过ReportViewer的脸,至少告诉你丢失的文件。
为了解决这个问题,我创建了一个quickie测试程序并显示了ReportViewer,这使我更清楚我需要哪些DLL:
答案 3 :(得分:1)
开始
必须安装'Microsoft.Report.Viewer','ReportViewer.WebForms','的 nuget 软件包Microsoft.ReportViewer.WinForms” 和“ Microsoft.SqlServer.Types”
https://www.nuget.org/packages/ReportViewer.WebForms/
https://www.nuget.org/packages/Microsoft.ReportViewer.WinForms/
https://www.nuget.org/packages/Microsoft.Report.Viewer/
https://www.nuget.org/packages/Microsoft.SqlServer.Types/
然后应该在web.config中检查一些标签
<system.web>
<compilation debug="true" targetFramework="4.5">
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</buildProviders>
<assemblies>
<add assembly="Microsoft.ReportViewer.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
<add assembly="Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</assemblies>
</compilation>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" validate="false" />
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<system.webServer>
<handlers>
<add name="ReportViewerWebControlHandler" verb="*" path="Reserved.ReportViewerWebControl.axd" preCondition="integratedMode" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</handlers>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>