错误(SQL Server 2012 Data Tools 中加载自定义扩展插件时未安装或无法加载所选数据扩展 <插件名称> )

本文可帮助你解决在 SQL Server 2012 Data Tools 中尝试在报表服务器项目中加载自定义扩展时收到错误消息的问题。

适用于: SQL Server 2012 Enterprise、SQL Server 2012 Business Intelligence、SQL Server 2012 Developer、SQL Server 2012 Standard、SQL Server 2012 Web
原始 KB 数: 2750044

症状

请考虑以下方案:

  • 开发自定义 Reporting Services 数据处理扩展插件。
  • 自定义数据处理扩展插件程序集引用 Microsoft.ReportingServices.Interfaces.dll 文件。 该文件包含在 MICROSOFT SQL Server 2005 Reporting Services、SQL Server 2008 Reporting Services 或 SQL Server 2008 R2 Reporting Services 中。
  • 在 MICROSOFT SQL Server 2012 中安装 SQL Server Data Tools (SSDT)。
  • 使用 SSDT 部署数据处理扩展插件程序集。
  • 创建新的基于商业智能模板的报表服务器项目,并尝试选择自定义数据处理扩展插件以添加新数据源。

在这种情况下,你将收到类似于以下内容的错误消息:

无法连接到数据源“<数据源名称>”。 所选数据扩展插件“<自定义扩展名称>”未安装或无法加载。 验证所选数据扩展插件是否已安装在客户端上用于本地报表,并在报表服务器上安装已发布报表。

注释

  • 数据源名称 是数据源名称的占位符, 自定义扩展名称 是自定义扩展名称的占位符。

  • 如果在任何 SQL Server Reporting Services (SSRS) 报表中加载自定义扩展,然后通过 SSRS Web 服务或 Web 界面运行报表,则自定义扩展将成功运行。

  • 此问题不限于数据处理扩展插件。 当任何自定义扩展引用 SQL Server 2005 Reporting Services、SQL Server 2008 Reporting Services 或 SQL Server 2008 R2 Reporting Services 随附的 Microsoft.ReportingServices.Interfaces.dll 文件时,可能会遇到类似的错误。

原因

此问题是由于 SSDT 安装过程中的 bug 而发生的。

安装 SSDT 后,以下错误条目将添加到 devenv.exe.config 文件和 PreviewProcessingService.exe.config 文件中:

<dependentAssembly>
    <assemblyIdentity name="Microsoft.ReportingServices.Interfaces" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
    <bindingRedirect oldVersion="9.0.242.0" newVersion="10.0.0.0"/>
</dependentAssembly>

如果自定义扩展引用程序集版本为 9.0.242.0 的 Microsoft.ReportingServices.Interfaces.dll 文件,SSDT 将查找程序集版本为 10.0.0.0.0 的 Microsoft.ReportingServices.Interfaces.dll 文件。 但是,安装 SSDT 的计算机上可能不存在此较新的程序集。

决议

若要解决此问题,请使用 devenv.exe.config 文件和 PreviewProcessingService.exe.config 文件中的正确条目

若要更正 devenv.exe.config 文件中的条目,请执行以下步骤:

  • 打开 位置中的 devenv.exe.config 文件: %Program Files%\Microsoft Visual Studio 10.0\Common7\IDE

    注释

    PreviewProcessingService.exe.config 文件位于 %Program Files%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies.

  • devenv.exe.config 文件中,找到以下条目:

    <dependentAssembly>
        <assemblyIdentity name="Microsoft.ReportingServices.Interfaces" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
        <bindingRedirect oldVersion="9.0.242.0" newVersion="10.0.0.0"/>
    </dependentAssembly>
    
  • 将条目替换为以下内容:

    <dependentAssembly>
        <assemblyIdentity name="Microsoft.ReportingServices.Interfaces" publicKeyToken="89845dcd8080cc91" culture="neutral" />
        <assemblyIdentity name="Microsoft.ReportingServices.Interfaces" publicKeyToken="89845dcd8080cc91" culture="neutral" />
        <bindingRedirect oldVersion="8.0.242.0" newVersion="11.0.0.0" />
        <bindingRedirect oldVersion="9.0.242.0" newVersion="11.0.0.0" />
        <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    
  • 保存 devenv.exe.config 文件。

  • 关闭,然后重新打开 Visual Studio 或 SSDT。

注释

更正 PreviewProcessingService.exe.config 文件中条目的步骤相同。