【问题标题】:The application requires that assembly Microsoft.ReportViewer.WinForms Version 11.0.0.0 be installed in the Global Assembly Cache (GAC) First应用程序要求首先在全局程序集缓存 (GAC) 中安装程序集 Microsoft.ReportViewer.WinForms 版本 11.0.0.0
【发布时间】:2017-09-02 05:34:11
【问题描述】:

我有一个 ClickOnce WPF 应用程序。在我将 ReportViewer 从版本 10 更改为版本 11 之前,它安装正确。

我知道在尝试安装时收到以下错误:

应用程序要求首先在全局程序集缓存 (GAC) 中安装程序集 Microsoft.ReportViewer.WinForms 版本 11.0.0.0。

如何解决这个问题并仍然使用 ClickOnce,我无法手动安装,因为用户没有权限;他们只有使用 ClickOnce 的权限。

我尝试将 Microsoft.ReportViewer.WinForms.dll 发布状态从 Prerequisite 更改为 Include,但错误仍然存​​在。

【问题讨论】:

  • 如果你不能让你的用户更新他们的机器,那么你就陷入了困境。
  • 在您的屏幕截图中,Microsoft.ReportViewer.Common.dll 也设置为先决条件。将 if 设置为 Include。

标签: c# clickonce


【解决方案1】:

虽然我需要下载两个 .msi 应用程序,但我能够让它在有同样问题的机器上运行。

首先我下载并安装了 SQLSysClrTypes。它位于here,因为它是安装报表查看器所需要的。

只需点击下载,它就会带您进入带有滚动条的页面。 SQLSysClrTypes 接近底部。只需勾选并点击下一步,您就可以下载并安装它。

我从here 获得报告查看器。

安装它们之后。我能够使用 reportviewer 11 从我的 ClickOnce 中抓取,它下载并成功运行,而我之前遇到了完全相同的问题。

作为附录,我已登录到管理员,因此如果您没有管理员,此解决方案可能不是最好的。

【讨论】:

    【解决方案2】:

    将其作为先决条件添加到安装程序中。

    1. 右键单击您的项目并转到属性
    2. 点击发布标签。
    3. 点击先决条件...
    4. 找到 Microsoft Visual Studio 2010 Report Viewer 并检查它。 (自更新以来可能有不同的版本可用,请检查。)

    安装您的应用程序后,它现在将为用户下载报告查看器。

    【讨论】:

    • 这是否意味着最终用户需要管理员权限才能安装它?我们正在尝试包含所有点击一次?
    • 我最好的猜测是......如果他们有权安装 click 一次,他们将有权安装此组件。
    【解决方案3】:

    如果您转到 NuGet 包管理器,您可以从那里安装 Microsoft.Winforms.ReportViewer 11 版本。这将获得所有依赖的 DLL 文件,并且一切都将在那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      相关资源
      最近更新 更多