この記事は、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 を使用して、データ処理拡張機能アセンブリをデプロイします。
- Business Intelligence テンプレートに基づく新しいレポート サーバー プロジェクトを作成し、新しいデータ ソースを追加するためにカスタム データ処理拡張機能を選択します。
この場合に、次のようなエラー メッセージが表示されます。
データ ソース '<Data ソース名>' に接続できません。 選択したデータ拡張機能 '<Custom Extension Name>' がインストールされていないか、読み込めません。 選択したデータ拡張機能がローカル レポートの場合はクライアントにインストールされ、パブリッシュされたレポートの場合はレポート サーバーにインストールされていることを確認します。
注
データ ソース名 はデータ ソース名のプレースホルダーであり、 Custom 拡張機能名 はカスタム拡張機能名のプレースホルダーです。
任意の 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 セットアップ プロセスのバグが原因で発生します。
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 のMicrosoft.ReportingServices.Interfaces.dll ファイルを検索します。 ただし、この新しいアセンブリは、SSDT がインストールされているコンピューターには存在しない可能性があります。
解決策
この問題を解決するには、 devenv.exe.config ファイルと PreviewProcessingService.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 ファイル内のエントリを修正する手順は同じです。