在不安装Microsoft Report Viewer的情况下发布网站

16

我有一个仅具备FTP访问权限的Web服务器,无法在其中安装Microsoft Report Viewer。

如何在不安装ReportViewer的情况下将我的asp.net应用程序发布到IIS上?

我已经将以下dll复制到我的站点bin文件夹中:

  • Microsoft.ReportViewer.WebForms.dll
  • Microsoft.ReportViewer.Common.dll

现在我遇到了错误,提示如下:

本地报表处理过程中发生错误。
报表“Reports\QuotationViewReport.rdlc”的定义无效。
报表处理中出现意外错误。
无法加载文件或程序集“Microsoft.ReportViewer.ProcessingObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或其某个依赖项。系统找不到指定的文件。

我甚至无法在本地机器上找到名为Microsoft.ReportViewer.ProcessingObjectModel.dll的dll文件。

是否可能在不安装ReportViewer的情况下发布我的应用程序?

6个回答

20

先决条件:在开发机器上安装了Microsoft ReportViewer程序集(如由webkite回答)。

在Visual Studio中,从项目的“添加引用”操作中,选择浏览选项卡并浏览到GAC。(C:\Windows\assembly\GAC_MSIL)。

在那里,找到Microsoft.ReportViewer.ProcessingObjectModel程序集文件夹,选择适合您需要的版本子文件夹,并将程序集添加为本地引用。

然后在您的引用列表中找到该程序集,并将其Local Copy属性切换为true

对于其他报表查看器程序集,您应该能够直接从“添加引用”对话框中的.Net选项卡中添加它们。不要忘记为它们也切换Local Copy属性为true

通过这个设置,ReportViewer程序集将在每次构建时复制到您的构建目录中,您应该能够轻松地将它们复制到目标部署环境中。

你可以尝试使用一些在NuGet上找到的ReportViewer包。但是它们似乎都不是由微软官方提供的。

1
这个解决方案救了我的一天!非常感谢。我原本以为只需要将Microsoft.ReportViewer.WebForms.dll和Microsoft.ReportViewer.Common.dll设置为本地副本就足够了,但实际上还需要将Microsoft.ReportViewer.ProcessingObjectModel添加到我的项目中。 - Rahnzo
你是我的英雄!谢谢! - Lukas
谢谢!非常有用! :-) - sara

7

3
将这些文件添加到您网站的bin文件夹中:

Microsoft.ReportViewer.Common.dll

Microsoft.ReportViewer.WebForms.dll

Microsoft.ReportViewer.WebForms.xml


请返回翻译后的文本。 - Red

2

这些 NuGet 包似乎是由微软官方发布的。 - Frédéric

1
尝试访问C:\Windows\assembly,然后搜索Microsoft.ReportViewer.ProcessingObjectModel。
或者,
你可以在以下位置找到ReportViewer.exe: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ReportViewer\ReportViewer.exe 运行ReportViewer.exe之后,文件将会被复制到部署计算机的全局程序集缓存文件夹中。

c:\windows\assembly 没有 Microsoft.ReportViewer.ProcessingObjectModel.dll。 - DineshNS
通过安装ReportViewer.exe可以解决这个问题。但是我无法在托管服务器上安装任何东西。 - DineshNS

0

你好,你可以找到dll文件并打开你的项目,然后添加引用,选择浏览并选择c:/windowse/assemple/GAc_msil,在这里你会找到Microsoft报表查看器文件夹,并选择你想要的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接