在Visual Studio 2017 RC中缺少Reportviewer工具

我刚开始在名为visual studio 2017 RC的新版Visual Studio中编写报告软件,但只是注意到Windows窗体和WPF应用程序模板都缺少核心报告查看工具。 任何人都可以告诉我为什么reportviewer工具从视觉工作室2017消失了? 没有它真的遇到麻烦。 在新的Visual Studio中有没有可以使用此工具的替代方案?

更新 :Microsoft于2017年4月18日发布了一个文档 ,描述了如何在Visual Studio 2017中配置和使用报告工具。

Visual Studio 2017默认情况下没有在ToolBox中安装ReportViewer工具。 为Visual Studio安装扩展Microsoft Rdlc报表设计器 ,然后将其添加到ToolBox会导致在窗体下方显示一个非可视组件。

微软支持告诉我这是一个错误,但截至2017年4月21日,它“按设计工作”。

对于需要ReportViewer每个项目,都需要遵循以下步骤。

  • 如果您在工具箱中有ReportViewer ,请将其删除。 突出显示,右键单击并删除。
    • 您必须有一个打开表单的项目才能执行此操作。
  • 如果安装了Visual Studio扩展的Microsoft Rdlc报表设计器 ,请将其卸载。
  • 关闭解决方案并重新启动Visual Studio。 这是一个至关重要的步骤,如果在解决方案之间切换时未重新启动VS,则会发生错误。
  • 打开你的解决方案
  • 打开NuGet包管理器控制台( Tools/NuGet Package Manager/Package Manager Console
  • 在PM>提示符下输入此命令,大小写很重要。

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms

    您应该看到描述包安装的文本。

现在我们可以暂时将ReportViewer工具添加到工具箱中。

  • 在工具箱中单击鼠标右键,然后使用Choose Items...

  • 我们需要浏览到位于解决方案Packages文件夹中的正确DLL,因此点击浏览按钮。

  • 在我们的示例中,我们可以粘贴在packages文件夹中,如Package Manager控制台的文本所示。

    C:\Users\jdoe\Documents\Projects\_Test\ReportViewerTest\WindowsFormsApp1\packages

  • 然后双击名为Microsoft.ReportingServices.ReportViewerControl.Winforms.140.340.80的文件夹

    版本号可能在将来发生变化。

  • 然后双击lib并再次在net40

  • 最后,双击文件Microsoft.ReportViewer.WinForms.dll

    您应该在对话框中看到ReportViewer选中。 向右滚动,您将看到与之关联的版本14.0.0.0。

  • 单击确定。

ReportViewer现在位于ToolBox中。

  • 将工具拖动到所需的表单。

  • 完成后,从工具框中删除ReportViewer工具。 您不能将它与其他项目一起使用。

  • 你可以保存项目并且很好。

当您需要使用ReportViewer打开项目时,请记住重新启动Visual Studio,以便从正确的位置加载DLL。 如果您尝试使用带有ReportViewer的表单打开解决方案而不重新启动,则会看到错误,指示“ The variable 'reportViewer1' is either undeclared or was never assigned. “。

如果将新项目添加到需要创建项目的同一解决方案中,请保存解决方案,重新启动Visual Studio,然后您应该能够将ReportViewer添加到表单中。 我看到它第一次不起作用,并显示为非可视组件。

当发生这种情况时,从表单中删除组件,从项目中删除Microsoft.ReportViewer.*引用,保存和重新启动通常有效。

对我来说,它通过以下三个步骤工作:

  1. 将Visual Studio更新到最新版本。
  2. 通过以下方式将报告/报告向导 添加到“ 添加/新项目”菜单:
    • 转到Visual Studio菜单工具/扩展和更新
    • 从左侧面板中选择“ 在线 ”。
    • 搜索Visual Studio的Microsoft Rdlc报表设计器
    • 下载并安装它。
  3. 添加报表查看器控件:

    • NuGet包管理器

    • 安装Microsoft.ReportingServices.ReportViewerControl.Winforms

    • 转到此文件夹: %USERPROFILE%.nuget \ packages \ microsoft.reportingservices.reportviewercontrol.winforms \ 140.1000.523 \ lib \ net40
    • 拖动Microsoft.ReportViewer.WinForms.dll文件并将其放在Visual Studio Toolbox窗口中。

对于WebForms应用程序:

  1. 相同。
  2. 相同。
  3. 添加报表查看器控件:

    • NuGet包管理器

    • 安装Microsoft.ReportingServices.ReportViewerControl.WebForms

    • 转到此文件夹: %USERPROFILE%.nuget \ packages \ microsoft.reportingservices.reportviewercontrol.webforms \ 140.1000.523 \ lib \ net40
    • 拖动Microsoft.ReportViewer.WebForms.dll文件并将其放在Visual Studio Toolbox窗口中。

就这样!

请注意,每次启动其他项目时,都会重复上述@Rich Shealer描述的添加报告服务的过程。 为了避免这种情况:

  1. 如果您可能需要设置不同的计算机(例如,在家中没有互联网),那么请将您下载的安装程序从市场安全放置,即:

    • Microsoft.DataTools.ReportingServices.vsix,和
    • Microsoft.RdlcDesigner.vsix
  2. 从您使用报告服务创建的应用程序的packages或bin文件夹中获取以下库:

    • Microsoft.ReportViewer.Common.dll
    • Microsoft.ReportViewer.DataVisualization.dll
    • Microsoft.ReportViewer.Design.dll
    • Microsoft.ReportViewer.ProcessingObjectModel.dll
    • Microsoft.ReportViewer.WinForms.dll
  3. 从上面的1安装2个组件

  4. 添加上面2中的dll作为引用(Project> References> Add …)
  5. (可选)将“报告”选项卡添加到工具栏
  6. 将项目添加到报告选项卡
  7. 浏览到bin文件夹或您拥有上述dll的位置并添加它们

你现在好好去! ReportViewer图标将添加到工具栏中,当您想要向项目中添加新项目…(报告)时,您现在还可以找到添加到公共模板列表中的Report和ReportWizard模板

注意:使用Nuget包管理器进行设置时,Report和ReportWizard模板将分组在Reporting下。 但是,使用我上面描述的方法并不会在已安装的模板中添加报告分组,但我不认为它有任何问题,因为它使您能够在没有互联网的情况下快速集成rdlc,而无需每次都从Nuget下载已有的内容!