locked
ASP.net開発でのReportViewerのライブラリについて RRS feed

  • 質問

  •  はじめまして、こちらのフォーラムで良いのかわかりませんが質問させていただきます。

    もしフォーラムが違う場合はご指摘ください。

    現在、ASP.net(.net Framework4.0)の開発をWindows7上のVisualStudio2010にて行っております。

    今月、人員が増加したためVisualStudioを購入していただいたのですが、

    VisualStudio2010ではなくVisualStudio2012となってしまいました。

    その際に印刷で使用しているMicrosoftReportViewerのVersionが2010から2012となっていたため、

    現在開発中のプロジェクトでコンパイルが通らない状況となってしまいました。

    下記設定が可能かどうか、どなたかご存知の方がいらっしゃったらお教えいただけますでしょうか?

     1.VisualStudio2012にてMicrosoftReportViewer2010ライブラリを導入し、使用する方法。

     2.VisualStudio2012にて導入済みのMicrosoftReportViewer2012ライブラリを削除または無効化する方法。

    ご存知の方がいらっしゃったらご教授ください。

    なにとぞよろしくお願いいたします。

    2014年4月10日 0:42

回答

  • なっちゃんといいます。

    私も同じような目にあいましたので報告させていただきます。

    vs2010でreportviewer(v10.0でした)を開発し、運用していたものが、vs2012にアップしてからreportを追加するとreportviewerが標準で11.0になってしまうようだ。web.configが書き換わってしまう。

    そこで10.0と11.0が混在する羽目になり、コンパイルが通らなくなった。web.configのreportviewerのところを11.0にしたりしたが中途半端に修正したので時間がかかってしまった。

    新旧レポートがある場合対応が難しそうなので10.0に戻して運用しています。

    私の場合修正は

    1、web.configのreportviewerに関するところをすべて10.0にする、3か所ぐらいあった。

    2、レポート用ののaspxでregisterのバージョンを10.0にする。(特にvs2012で新たにレポート作成する時は手で修正する)

    ことにしました。もちろんpublickeytokenも一緒に直す。

    以上

    • 回答としてマーク syou.rf 2014年4月11日 5:53
    2014年4月10日 6:28
  • > 私個人の意見としてはどれかに統一が良いのですが、他システム開発グループとの問題で、
    > 開発環境が2010と2012混在環境となってしまっています。

    ReportViewer Ver. 10, Ver. 11 混在では動かないので、VS2012 を使っている人の ReportViewer を無理やり(?)Ver.10 を使うようにしてしまうということと理解します。

    また、新しい PC には VS2012 のみがインストールされていて、ReportViewer Ver. 10 が無いから困っているということと理解します。

    中身を見たわけではないので無責任モードで済みませんが、以下に必要な dll は含まれていませんか?

    Microsoft Report Viewer 2010 再頒布可能パッケージ
    http://www.microsoft.com/ja-jp/download/details.aspx?id=6442

    • 回答としてマーク syou.rf 2014年4月11日 5:53
    2014年4月10日 9:17

すべての返信

  • なっちゃんといいます。

    私も同じような目にあいましたので報告させていただきます。

    vs2010でreportviewer(v10.0でした)を開発し、運用していたものが、vs2012にアップしてからreportを追加するとreportviewerが標準で11.0になってしまうようだ。web.configが書き換わってしまう。

    そこで10.0と11.0が混在する羽目になり、コンパイルが通らなくなった。web.configのreportviewerのところを11.0にしたりしたが中途半端に修正したので時間がかかってしまった。

    新旧レポートがある場合対応が難しそうなので10.0に戻して運用しています。

    私の場合修正は

    1、web.configのreportviewerに関するところをすべて10.0にする、3か所ぐらいあった。

    2、レポート用ののaspxでregisterのバージョンを10.0にする。(特にvs2012で新たにレポート作成する時は手で修正する)

    ことにしました。もちろんpublickeytokenも一緒に直す。

    以上

    • 回答としてマーク syou.rf 2014年4月11日 5:53
    2014年4月10日 6:28
  • なっちゃんです。

    言い忘れましたが、vs2012でこの状態でコンパイルが通り、実行はうまくいくのですが、デザイン画面で「コントロールの作成中にエラーが発生しました」と表示されます。

    これはvs2012のバグではないかと無視しています。(笑い)

    どこかに変更する箇所があるのかもしれません。

    2014年4月10日 7:07
  • 直接の回答ではないです。


    > もしフォーラムが違う場合はご指摘ください。

    ASP.NET のことは ASP.NET のフォーラムで議論した方がいいと思います。


    > VisualStudio2010ではなくVisualStudio2012となってしまいました。

    開発環境が 2010 から 2012 に変わったということであれば、ReportViewer も 2012 用 (Ver.11) を使用する(例えば、VS2012 で ReportViewer を使用している .aspx ページと .rdlc を作り直す)ようにした方が今後のためによさそうですが、そういう選択肢はないのでしょうか?

    2014年4月10日 7:19
  • なっちゃん様

    回答ありがとうございます。

    ちなみに質問なのですが、VisualStudio2012では標準でMicrosoftReportViewer2012ライブラリが入っていると思っているのですが、

    MicrosoftReportViewer2010ライブラリを導入できるのでしょうか?

    もしよろしければお教えいただけますでしょうか。

    2014年4月10日 8:33
  • SurferOnWww様

    ご意見ありがとうございます。

    >開発環境を2010 から 2012 へ統一

    私個人の意見としてはどれかに統一が良いのですが、他システム開発グループとの問題で、

    開発環境が2010と2012混在環境となってしまっています。

    現状は上司に伝えてはいるのですが、他グループとの兼ね合いでどうにも…となっております。

    2014年4月10日 8:38
  • > 私個人の意見としてはどれかに統一が良いのですが、他システム開発グループとの問題で、
    > 開発環境が2010と2012混在環境となってしまっています。

    ReportViewer Ver. 10, Ver. 11 混在では動かないので、VS2012 を使っている人の ReportViewer を無理やり(?)Ver.10 を使うようにしてしまうということと理解します。

    また、新しい PC には VS2012 のみがインストールされていて、ReportViewer Ver. 10 が無いから困っているということと理解します。

    中身を見たわけではないので無責任モードで済みませんが、以下に必要な dll は含まれていませんか?

    Microsoft Report Viewer 2010 再頒布可能パッケージ
    http://www.microsoft.com/ja-jp/download/details.aspx?id=6442

    • 回答としてマーク syou.rf 2014年4月11日 5:53
    2014年4月10日 9:17
  • SurferOnWww様

    ご回答ありがとうございます。

    >ReportViewer Ver. 10, Ver. 11 混在では動かないので、VS2012 を使っている人の

    >ReportViewer を無理やり(?)Ver.10 を使うようにしてしまうということと理解します。

    おっしゃる通りです。

    また対象のPCを確認してみましたら、下記ライブラリがなぜか導入されていました。

    ※開発者が2012のバージョンを間違って導入したかもしれないとは言っていました。

    MicrosoftReportViewer 2012 ランタイム (Ver.11.1.3000.0)
    MicrosoftReportViewer 2010 SP1 Redistributable (Ver.10.0.40219)

    現在、2012のランタイムをアンインストールして検証中ではございますが、

    もともとVisualStudio2012にはMicrosoftReportViewer 2012が入っているのなら、

    MicrosoftReportViewer 2010を強制的に有効化するにはどうすればよいか、

    もしご存知でしたらお教えください。

    なにとぞよろしくお願いいたします。

    2014年4月11日 0:02
  • なっちゃんです。

    最初にも書きましたがvs2012でreportviewerのv10を開発するには、web.configのreportviewerをv10に書き換える。

    そして該当のaspxのregisterの記述もv10に書き換える。

    とすればコンパイルも実行も出来るが、デザイン画面ではコントロールエラーになる。(変更するには、reportviewerのソースを直接直す)なのですが、いま調べてみるとprogramfiles(x86)にMicrosoftVisualStudio10と11があるがこの中身を入れ替えれば「コントロールエラー」がなくなるのではないかと思いますが、環境を壊すかもしれないと躊躇しているところです。

    2014年4月11日 0:51
  • 最初にも書きましたがvs2012でreportviewerのv10を開発するには、web.configのreportviewerをv10に書き換える。

    そして該当のaspxのregisterの記述もv10に書き換える。

     なっちゃん様

    ご回答ありがとうございます。

    プロジェクトファイル自体は、VS2010上で開発したものですので、

    ReportViewer関連の設定はすべてReportViewer2010(ver.10)のもののままでした。

    問題としてはReportViewer2010のランタイムにてインストールが正常に終了するものの、

    ReportViewer2010(Ver.10)がライブラリとして参照できないといったところでした。

    2014年4月11日 5:38
  • 取り敢えずですが、泥臭い力技で解決できましたので記述しておきます。

    1.VisualStudio2012にてMicrosoftReportViewer2010ライブラリを導入出来なかったため、

      他のVisualStudio2010にて使用しているMicrosoftReportViewer2010ライブラリ群を任意のディレクトリへコピー

    2.VisualStudio2012にてMicrosoftReportViewer関連の参照設定を上記項目1のディレクトリ内のライブラリへ変更

     この方法でなら、なっちゃん様がおっしゃるとおり、ASPXのデザインモードではエラー表示となりますが、

     .rdlcファイルのレポートエディタは問題なく動作しますし、コンパイル及び動作は問題ないようです。

    根本的な解決とは言いがたいのですが、今回はこの逃げ方で対応しようと思います。

    ご回答いただいたなっちゃん様、SurferOnWww様、ありがとうございました。

    2014年4月11日 5:53