【问题标题】:Getting a Microsoft.VisualStudio.TextLogic version 14 must be installed in the GAC获取 Microsoft.VisualStudio.TextLogic 版本 14 必须安装在 GAC 中
【发布时间】:2017-12-26 19:01:52
【问题描述】:

最近我试用了 Visual Studio 2017。我们有一个 MSDN 订阅。我们正在开发一些我们正在编写为 WPF 应用程序的内部应用程序。这些应用程序需要安装在用户没有管理权限的用户计算机(Windows 7 到 Windows 10)上。在这一点上,对我们伤害最大的事情是在不需要管理员在场的情况下安装 ReportViewer 控件。 VS 2015 及更早版本是不可能的,因为(据我所知)VS 2015 及更早版本,ReportViewer 控件是一个 ActiveX 控件,需要管理员权限才能安装。有人告诉我,在 VS 2017 中,新的 ReportViewer 控件(版本 14)不是 ActiveX 控件。它不需要管理员权限。这是个好消息,我告诉了我的同事们。为了演示这一点,我使用 VS 2017 编写了一个非常简单的 WPF 应用程序。我所做的只是将 ReportViewer 控件放到一个窗口上。最终让它工作确实花了大约 6 周的时间(比它应该做的要长得多),但我使用 ClickOnce 部署将它部署到机器上。

接下来,我想我会向自己证明我可以再做一次,这次我要记录下我做了什么。我已尝试两次复制相同的简单应用程序,但我不断收到以下消息:

这根本不会发生,因为这会让我们回到同样的问题 - 必须有一些管理员在附近才能安装这个应用程序。我们不希望这样。简要介绍一下我采取的步骤:

  1. 使用 VS 中的包管理器控制台安装了 Microsoft.SqlServer.Types 版本 14.0.314.76。
  2. 使用包管理器控制台安装了 Microsoft.ReportingServices.ReportViewerControl.Winforms 版本 140.340.80
  3. 在 XAML 中,我在窗口标记中包含了命名空间 Microsoft.ReportViewer.WinForms。
  4. 添加了对 System.Windows.Forms 和 WindowsFormsIntegration 的引用
  5. 在窗口的 Grid 标记中添加了以下 XAML:

  6. 设置 ClickOnce 部署

  7. 由于涉及中文位置文件的一个bug,我进入了项目的发布选项卡| Application Files 并将所有以“zh-”开头的文件发送到 Exclude for Publish Status。

然后我将它发布到网络共享并在没有使用没有权限的帐户安装旧 ReportViewer 的机器上运行 ClickOnce Setup.exe。

我收到了我在本文开头附近给出的“需要系统更新”消息。

为什么会这样?为什么需要在 GAC 中安装 Microsoft.VisualStudio.Text.Logic?特别是对于一个根本不连接到任何数据库的应用程序?

【问题讨论】:

    标签: c# wpf winforms visual-studio clickonce


    【解决方案1】:

    因为它看起来是 GAC 中 ReportViewer 文件的重要 DLL,其中还包含 Microsoft.VisualStudio.Text.Logic DLL 到包中。因此,除非找到丢失的 DLL,否则它会显示错误。

    尝试以下步骤将 DLL 添加到项目工具栏中:

    1. 包管理器控制台中运行以下命令:

       Install-Package Microsoft.ReportingServices.ReportViewerControl.Winforms -Version 140.340.80
      
    2. 右键在工具箱中的任意位置单击,然后选择Choose Items...

    3. .NET Framework 组件上,点击浏览

    4. 从您安装的 NuGet 包中选择 Microsoft.ReportViewer.WinForms.dll

    5. 新控件应显示在工具箱中。然后尝试使用这个新的报表查看器发布您的项目。

    正如 Dmitry 的评论分享的 link 中提到的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      • 2021-10-28
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2019-07-11
      相关资源
      最近更新 更多