应用程序要求首先在全局程序集缓存中安装程序集microsoft.reportviewer.processingObjectModel版本11.0.0.0

时间:2013-05-10 06:56:53

标签: .net-4.0 visual-studio-2012 reportviewer gac

我在Visual Studio 2012中创建了一个使用ReportViewer版本11.0.0.0的小窗体应用程序。

应用程序目标框架是.NET 4.0,其部署方法是ClickOnce

在我的电脑上安装但在客户端计算机上,安装失败并显示错误

应用程序要求首先在全局程序集缓存中安装程序集microsoft.reportviewer.processingObjectModel版本11.0.0.0。

在客户端计算机上,我已安装

  • .NET 4.0
  • ReportViewer 2010
  • Microsoft Report Viewer 2012运行时CTP
  • SQLSYSCLRTYPES.msi

在项目应用程序文件设置中,我已将 microsoft.reportviewer.processingObjectModel 发布状态 设置为包含(自动)< / strong>,在参考文献中我还将其 复制本地 属性设置为 True

我错过了什么?

我甚至按照http://msdn.microsoft.com/en-us/library/ms251723.aspx

中的说明操作

9 个答案:

答案 0 :(得分:20)

这是(可以说)处理此问题的最佳方式......无需下载或安装任何附加内容。这适用于Visual Studio 2012(Ultimate)

  1. 转到解决方案中的主项目(默认/ statup项目)
  2. 右键单击并单击属性/选择&#34;您的项目&#34;&gt;&gt;项目&GT;&GT;特性
  3. 点击&#34;发布&#34;标签以查看发布选项
  4. 转到&#34;安装模式和设置&#34;&gt;&gt;点击&#34;应用程序文件&#34;和对话框打开
  5. 向下查找设置为&#34;发布状态&#34; &GT;先决条件
  6. 您会发现ReportViewer和其他几个文件设置为先决条件
  7. 将所有发布状态更改为&#34;包括&#34;在下拉列表中
  8. 我知道您只需要ReportViewer,但这将消除我遇到的其他潜在问题
  9. 现在所有必需的文件都将添加到您的安装设置中!
  10. 如果您有兴趣,可以在&#34;安装模式和设置&#34;&gt;&gt;选项&gt;主要广告&gt;创建桌面快捷方式下更改包括桌面图标

答案 1 :(得分:3)

你缺少ProcessingObjectModel.dll文件在gac程序集C:\ windows \ assembly \ GAC_MSIL \ Microsoft.ReportViewer.ProcessingObjectModel中找到版本11.0.0.0并将其添加到bin目录。

答案 2 :(得分:2)

我们遇到了同样的问题,但问题是,它会自动将其添加到引用(microsoft.reportviewer.processingObjectModel),如果你从发布属性(properties-&gt; publish-&gt;应用程序文件)中删除它,它可能会解决它。

答案 3 :(得分:1)

更好的选择是在以下位置安装Microsoft Report Viewer 2010 SP1可再发行组件包: http://www.microsoft.com/en-us/download/details.aspx?id=6610

您的用户也需要安装此软件包。如果您只是复制并粘贴MS DLL,则每次升级应用程序时都必须重新部署它。

答案 4 :(得分:1)

如果您使用的是WinForms,对我来说,当它被用于通过点击一次部署的报表查看器时,担心在GAC中安装此DLL似乎毫无意义。这不是一个大文件,您可能会将其用作表单上的报表查看器控件,仅此而已。一种可能的解决方案是执行以下操作:

  1. 在Visual Studio中,转到项目中用于程序集Microsoft.ReportViewer.ProcessingObjectModel的引用,并找到该程序集的文件夹的文件路径。我的版本是12,所以我的文件路径是C:\windows\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel\12.0.0.0__89845dcd8080cc91
  2. 复制程序集所在文件夹的文件路径,并从项目中删除引用(右键单击引用并选择&#34;删除&#34;)。
  3. 赢得+ R以获得&#39;运行&#39;提示。将该文件夹路径粘贴到那里并执行以直接跳转到该DLL的文件夹中。
  4. 找到DLL,它应该是该文件夹中的唯一文件,并将其复制到Visual Studio项目文件夹中。您不应该关心所使用的驱动器上100kb的额外空间,我也不认为这个DLL是您需要更新的。
  5. 返回Visual Studio,右键单击“引用”,“添加引用”,然后在项目文件夹中浏览该DLL。添加引用后,请确保将“复制本地”属性设置为true。
  6. 清理并重建,在本地计算机上测试应用程序,而不是再次部署ClickOnce。
  7. 现在,当用户使用ClickOnce安装您的应用程序时,该引用根本不会引用GAC,并且不需要依赖此DLL的先决条件检查/安装过程,因为您已直接包含它在您发布的申请中。

答案 5 :(得分:0)

这取决于您使用的设置类型,但基本上,这意味着您的服务器或计算机中缺少所需的库。要使应用程序能够从服务器下载(在客户端 - 服务器体系结构中),您需要在项目中包含文件。

  1. 转到您的应用程序选项,找到“发布”标签
  2. 点击“申请文件”
  3. 在随后出现的对话框中,选择包含您想要包含的所有库(或在客户端计算机上运行应用程序所需的库,然后单击“确定”)
  4. 构建您的应用程序,然后发布到服务器。
  5. 我希望这适合您,它在Visual Studio 2010专业版中适用于我

答案 6 :(得分:0)

如果是Windows 10,则无法按用户1236560的描述安装Microsoft Report Viewer 2010 SP1。首先,您需要安装SQL Server管理对象的先决条件(SQLSysClrTypes.msi),需要根据您的硬件在x86和x64之间进行选择。你可以在http://origin.www.ms.akadns.net/downloads/en/details.aspx?FamilyID=16BC778C-357B-46E9-8356-D575903AC831

找到它

之后您需要安装MICROSOFT®REPORTVIEWER 2012 RUNTIME,您可以在https://www.microsoft.com/en-us/download/details.aspx?id=35747

找到

必须安装这两个包。

答案 7 :(得分:0)

我遇到了这个错误

需要系统更新

无法安装或运行该应用程序。该应用程序需要组装 Microsoft.ReportViewer.ProcessingObjectModel版本11.0.0.0首先安装在全局程序集缓存(GAC)中。

请与您的系统管理员联系。

安装Visual Studio生成的应用程序时会弹出此错误 意思是我是客户之一

我有Visual Studio 2015和Microsoft SQL Server 2014,并且不了解Crystal Reports及其他相关内容。我确实检查了我的.NET Framework版本4.6.2。

我下载了几个扩展文件和可分发文件但却无法解决我的问题。

我不知道我是否一般会解决问题,但我确实成功安装了应用程序

所以我下载并安装了ff:

  • 适用于Visual Studio 2015的SAP Crystal Report(最新版本,只是为了确保)
  • Microsoft SQL Server 2012的Microsoft系统CLR类型
  • Microsoft Report Viewer 2012 Runtime。

这个问题花了我大约两天的时间来解决问题,小心下载并安装扩展文件和分布式文件,因为它也会占用一些空间。

答案 8 :(得分:-2)

最佳答案是:

这是(可以说)处理此问题的最佳方式......无需下载或安装任何附加内容。这适用于Visual Studio 2012(Ultimate)

  1. 转到解决方案中的主项目(默认/ statup项目)
  2. 右键单击并单击属性/选择“您的项目”&gt;&gt;项目&GT;&GT;特性
  3. 点击“发布”标签查看发布选项
  4. 转到“安装模式和设置”&gt;&gt;单击“应用程序文件”,打开对话框
  5. 向下查找使用“发布状态”&gt;设置的项目条件 您会发现ReportViewer和其他几个文件设置为先决条件
  6. 在下拉列表中将所有发布状态更改为“包含”。
  7. 我知道你只需要ReportViewer,但这将消除我遇到的其他潜在问题 现在,所有必需的文件都将添加到您的安装设置中!

    如果您有兴趣,可以在“安装模式和设置”&gt;&gt;选项&gt;主要广告&gt;创建桌面快捷方式下更改包含桌面图标

    它减轻了我所有的头痛。