質問者
ReportViewerのコントロールが ツールボックスへの追加に失敗する。(VS2017)

質問
-
環境:Windows10 Enterprize2016 LTSB / VisualStudio Proffesinal 2017 Version 15.9.16 / IE11
Visual Studio ツール バーにコントロールを追加する を参考にして作業していますが、下記のエラーを招きます。「15」というVerのReportViewerを導入したく、まさに こちらの記事がそれにあたったので、当方も記事をまねて .NetFrameWork4.5.2を選択したASP.NETでチャレンジ中です。
【質問】
初歩的なことかも知れませんが、問題を引き起こしている要因を ご教示ください。記事の下段にブラウザに関する注意書きがあったので、一応IEの互換表示設定を「イントラネットサイトを互換表示で設定する」をOffにしました。変わりなしです。
すべての返信
-
こんにちわ、記事一連をとおしてやっていたことで、かえって混乱したようです。
.NetFramework4.6を選択したプロジェクトにしたら、何もせずとも 全般タグに入りました。
自己解決ですね。お騒がせしました。(記事最初ではVerを指定しないReportViewerの取得がなされ「15」を得ている->そちらの.NetFrameWorkは4.5.2。
下段のコントロール追加の説明では「14」のReportViwerが表示されており、もしや...記事に一貫性はない、と疑ったら、案の定。)VS2012で構築したASP.NET4.0のサイトを、VS2017へ 移行しようとしたところ、導入中のReportViwer[11]が新環境側で相性悪く 試行錯誤していたところです。ASP.NET4.6にあげるしかないかな
-
> .NetFramework4.6を選択したプロジェクトにしたら、何もせずとも 全般タグに入りました。
それは絶対間違いないですか?
.NET 4.5.2 だったから ReportViewer v15 がツールボックスに登録できなかったと言っておられるようですが、そういうことはないと思うのですが。
あと、「何もせず」というのはどういうことですか?
参考にされている記事に書いてある "Report Viewer コントロールは NuGet パッケージとして出荷されるようになったため、既定では Visual Studio ツールボックスに表示されません" は間違いなくて、NuGet パッケージをインストールしてプロジェクトの pakeages フォルダにコピーされる Microsoft.ReportViewer.WinForms.dll を選択するという作業が必要になるはずです。
「回答としてマーク」を付けてますが、そうするなら 100% 間違いないことを確認いただくようお願いします。
#質問者さんは Teratail のスレッド https://teratail.com/questions/216797 で質問している人ですよね?- 編集済み SurferOnWww 2019年10月15日 9:22 誤字訂正
-
同一の人物です。 絶対まちがいないですか?と尋ねられると、不安になってしまいます。しかし、最初に画面コピーを貼り付けた状態にならなければ、私は本件を問い合わせなかったかな、と思うのです・・・。 気になる点は 私はSuferOnWwwさんが述べられたMicrosoft .ReportViewer.WinForms.dllは選択しませんでした。ASP.NETなので〜WebForms.dllのみ選択すれば大丈夫だろう、と勝手ながら思いました。 『何もせずとも』は言い過ぎですね。一つ確認しておきたいです。VisualStudioのツールボックスはプロジェクトが違えど、選択されたアイテム・表示のされ方は共有されるでしょうか??共有されるのてあれば紹介記事の如くASP.NET4.52でプロジェクトを作って、NuGetパッケージマネージャーでコントロール取得——>アイテムの選択するも画像のようにツールボックスへ当該を現すことができなかった。引き続いて、ASP.NET4.6ではどうだろう??、と別プロジェクトを作成してNuGetパッケージマネージャーで同コントロール取得——>アイテムの選択しようと思うも・・・既にツールボックスへ表示されていたこんなことが起きた可能性があります。 回答マークを外すのは勿論構わないのですが、フレッシュなVisualStudio が入手できないと検証できないので暫くお時間を頂くこととなります、御容赦ください。
-
> VisualStudioのツールボックスはプロジェクトが違えど、選択されたアイテム・表示のされ方は共有されるでしょうか?
実際に自分の環境で新しいプロジェクトを作るなりして調べてみてください。
私の環境では、ある Web Forms プロジェクトで、上のレスに書いた「NuGet パッケージをインストールしてプロジェクトの pakeages フォルダにコピーされる Microsoft.ReportViewer.WinForms.dll を選択するという作業」を行ってツールボックスに ReportViewer v15 が登録されれば、他の Web Forms プロジェクトで、既存も新規作成でも、NuGet パッケージがインストールされてない Web Forms プロジェクトでも、ツールボックスに ReportViewer v15 が表示されます。 -
ReportViewer のバージョンとターゲットフレームワークを確認してみました。
バージョンについては VS2017 のメニューから「ツール」→「Nuget のパッケージマネージャ」→「ソリューションの Nuget パッケージの管理」で確認できます。
ターゲットフレームワークについては Telerik の JustDecompile で確認。
バージョン ターゲットフレームワーク 150.1358.0 NET 4.6 150.1357.0 NET 4.6 150.900.148 NET 2.0/3.5
というわけなので、最新版を使うなら 4.6 以上にする必要がありそうですね。逆に 4.5.2 で使うなら 150.900.148 まで戻せば良いことになります。
-
まだこのVisualStudio2017で、新規WebフォームにReportViewerを貼り付けて仕上げたものがありません。(型付データセットをReportViewerに採用しているWebサイト・フォームをASP.NET4.0から4.6へ移行中で、運用環境に動作要件が取り揃っているか検証するため、簡易サイト・プロジェクトを作っている。十分ご存知かも知れませんが)
で、このTrial2.aspxというWebフォームのデザイナで、ツールボックス上のReportViwerをドラッグ&ドロップしたいのですが、どうにもこうにもできません(反応がない、コントロールが貼り付かない)。
NuGetパッケージマネージャで プロジェクト単位に ReportViewerのインストールが必要なのか??と半信半疑ながら、それを対応。また予め、ScriptManagerが貼られていないとダメなのか、とデザイナでフォーム上に貼り付け、 また更に
<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
がコードに挿入されていないとダメなのか、とそれも対応。 つまり、記事 一連を試したつもりなのですが...どうもうまくいきません。
SuferOnWwwさんの仰られるように、別プロジェクトでツールボックスに追加したコントール(ReportViewer)は 今回のプロジェクト内ツールボックスにも現れていることを確認しました。
KOZ6.0さんのコメントからして、ツールボックス側のReportViewerのVerが(今取り組んでいるプロジェクト:ASP.NET4.6に)適合するか否かを 確認する作業が妥当、ということでしょうか。
以下画像は現在ツールボックスに選択されているだろうReportViewerを現しているものと思われます。 やはり、このヴァージョン表記がターゲットフレームワークと異なっていることが貼りつかない要因でしょうか
最初の問合せ主旨と異なってきて しまっていますが、差し支えなければご教示をよろしくお願いします。
- 編集済み saya24 2019年10月21日 4:18 画像の再添付