🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

2990閲覧

開発環境であるVisualStudio2017と、ASP.NET運用環境WindowsServer2016でReportViwerを動作させたい。最適Ver・導入手順を確認させてください

saya24

総合スコア246

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

1クリップ

投稿2019/10/12 04:23

編集2019/10/13 04:02

ViusalStudio2017上のASP.NET4.0のあるWebページ

ASP.NET4.0のあるWebサイトのはなしです。
開発環境の移行として、VisualStudio2012からVisualStudio2017へ
運用環境の移行として、WindowsServer2008R2からWindowsServer2016へ
を対応中です。

移植してきた開発素材をVisualStudio2017で開くと、ReportViwerを貼り付けたWebページは 上記の如く
「ファイルまたはアセンブリ'Microsoft.ReportViewer.Common, Version=150.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91'、またはその依存関係の1つが読み込めませんでした。~」というエラーを招いています。

このWebサイトのWeb.Configの参照設定は以下のとおりで

Web.Config

1<add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/> 2<add assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>

この状況を、間違っているかも知れないのですが(超素人ゆえ)、
VisualStudio2017としては、Microsoft.ReportViewer.Common, Version=150.0.0 を必要としており、
このための参照の追加が必要、と解釈しています。

【質問】
①上記の認識はあっていますか?
②認識が合っている場合、VisualStudio2017で 参照の追加に移るべきですが、参照マネージャの検索枠で'REPORT'の検索をかけても一切表示されるものはありませんでした。参照の追加以前に、ダウンロードが必要という認識をもちました。それはあっていますか?
③上記の認識が正しい場合、運用環境であるWindowsServer2016(IIS 10.0)でも、このReportViwerのVerが相応しいのか 気にすべきかな、と思いました(この認識は合っていると仮定して次へ)
この場合、実在しているか・否かという視点で当該サーバのGACを確認すればよろしいのでしょうか?
また、一切見当たらない場合、相応しいVerをダウンロード・取得することになると思いますが、この相性が記載されたサイトなどないでしょうか?
MS社の関連記事で紹介された手続きでは 開発環境にNuGetパッケージマネージャとかいうものを利用してソレを取得する流れが紹介されています。運用環境にソレが実在しない場合、どうやってソレを摘要すればよいのだろう?(運用環境はインターネットに繋がりません。GACに登録する方法が分かりません。配置する開発素材の一連にBINフォルダを織り交ぜ、この中に当該dllを入れておく??)
また、記事ではヴァージョンを指定したダウンロードじゃなさそうなので、この手順に従って対応して、果たして自分の開発環境&運用環境に適合するヴァージョンのReportViewerが取得されるだろうか? という不安を抱いています。

長文すみません。ご見解をよろしくお願いします。

【20191013 13:00追記 リビルドでエラー、フォームのaspxに変更必要?!】

aspx

1<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="StdcostReport.aspx.vb" Inherits="StdcostReport" title="標準原価書" %> 2<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %> 3 4<%@ Register assembly="Microsoft.ReportViewer.WebForms" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %> 5 6<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server" > 7 <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Height="" Width=""> 8 <LocalReport ReportPath="Report1.rdlc"> 9 <DataSources> 10 <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1_W_STDCOSTB" /> 11 </DataSources> 12 </LocalReport> 13 </rsweb:ReportViewer>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/12 22:28

参考にされた「MS社の関連記事」のとおり開発環境を設定 (NuGet パッケージのインストール等) で、少なくとも開発環境では問題は解決できたのですか?
saya24

2019/10/13 00:32 編集

いつもお世話になっております。運用環境にも相応しいものをダウンロードしなくてはならないのか、が分からなくて躊躇しています。開発環境でさえも、ダウンロードしていないということです。 提示したURL の記事が、バージョン指定した取得操作でないようにも見えたので、15が落ちてくるとも限らないなぁ、と思ったのも躊躇している理由です。 ReportViewerの適合表みたいのがあって、そちらでも15が最新なら、一先ず開発環境にダウンロードしてしまってもいいかな、と思い始めてます。私はVS2017ですが、VS2019用のものがダウンロードされては困るなも思い、今回の問い合わせとなっています。
退会済みユーザー

退会済みユーザー

2019/10/13 02:22 編集

とにかく開発環境で使えるようにしませんか? それから話をした方が解決が早そうですので。 開発マシンが不明ですが (そういう情報は質問に書くようお願いします)、Windows 10 Pro でしたら運用環境と同じ IIS10 が使えるはずですので、運用環境にデプロイする前に、開発マシンの IIS10 にデプロイして試すこともできますし。 想像ですが、NuGet でインストールされる .dll はアプリの bin フォルダに自動的に配置されるのではないかと思います。そうであれば、運用環境にデプロイするときに bin フォルダの中身を一式コピーすれば良さそうです。 そのあたりを確認するためにも、まずは開発マシンで使えるようにしませんか?
saya24

2019/10/13 01:55

失礼しました、Windows10 Enterprise 2016 LTSBが開発環境です。了解しました、まず開発環境で試して経過を報告します。 開発環境上でIIS10での検証の件、一昨日VS2017を導入したばかりで、そこまで気が回っていませんでした。デバッグ時にIISExpressが64ビットで上がってくるようにはしましたが。 そのようになるよう調べてみます。
退会済みユーザー

退会済みユーザー

2019/10/13 02:17

開発の最初は IIS Express を使った方が良いと思います。IIS10 の設定を熟知していて問題なく設定できるなら話は別ですが、そうでないと IIS10 の設定やそれから SQL Server に接続できるようにする手間が惜しいです。(ちなみに、LocalDB を動かすには動かすアカウントにユーザープロファイルが必要 ⇒ IIS10 を使うと動かない、IIS Express なら動く・・・ということもあります) IIS Express で期待通り動くことが確認出来たら、次のステップとして IIS10 と SQL Server を使って検証することをお勧めします。
saya24

2019/10/13 04:17

NuGetパッケージマネージャでの取得、完了しました。仰られるとおりBINフォルダに色々と入りました。 デバッグすると、 「予期しないコンパイラ初期化エラーが発生しました: プロジェクトには既にアセンブリ Microsoft.ReportViewer.WebForms への参照が指定されています。'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.ReportViewer.WebForms.dll' への 2 番目の参照を追加することはできません。」 というエラーを招きました。 本文に貼り付けていたaspxのデザイン画面は現況どうなっているかというと、 当初と異なりしっかり、ReportViwerのコントロールが現れています。これには一安心したのですが ...こちらをコード画面に切り替えると、本文に先ほど追記したように当該WebフォームにVer:11を参照するような記述が残っている状態です。きっと、これが原因なのでは...と推察できるものの、力不測で どういう対処をすれば良いのか分かりません。 VS2012時代に作った構築物・aspxの移行であり、今の今までWeb.Config上で参照定義がなされていた一連なので、相応のことをしなければならないとは思うのですが.... 申し訳ありませんが 次に私は何をすべきかアドバイスを頂けませんか? 開発環境でのIIS10上の検証、内容了解しました、おいおいということで。
退会済みユーザー

退会済みユーザー

2019/10/13 06:49

> 次に私は何をすべきかアドバイスを頂けませんか? そう言われても質問者さんが何をしたのか、既存のプロジェクトがどういうものか分からない第三者には的確なアドバイスはできないと思うのですけど・・・ 現時点で自分が言えることは、ゼロから新しいプロジェクトを作って、それに参考にされた「MS社の関連記事」のとおり NuGet パッケージをインストールして、何かのチュートリアルなどを参考に ReportViewer を実装して期待通り動かせたら、それと既存のプロジェクトを比べてみて、既存のプロジェクトの問題(参照設定のバッティングとか?)をクリアにするということぐらいです。 質問者さん、仕事でやっているのですよね? であれば、ここに書いてある情報が全てで質問者さんの詳しい状況は知る由もない第三者に聞く話ではなく、上司・先輩に聞くべき話と思うのですが・・・
saya24

2019/10/13 09:21

毎度お世話になります。会社には誰一人開発者はいません、強いてあげれば私です。 新規プロジェクトを作って比較する、良いかも知れませんね。 BINフォルダへの格納じゃなくて、参照設定で追加する方法だったらうまくいくような気がするのですが 先の作業で参照マネージャーに現れるようになっていたりしないか、な今から模索してみます。 また具体的に解決したい課題に直面したら、質問させて頂きます。ご容赦ください。
退会済みユーザー

退会済みユーザー

2019/10/13 09:42

> 会社には誰一人開発者はいません、強いてあげれば私です。 余計なお世話を承知で言わせてもらえると・・・ 質問者さんの作っているアプリは会社の製品の品質に、その程度はともかくとして、影響するのですよね。そうだとすると、質問に「超素人ゆえ」と書いている質問者さんがアプリ開発を一人で担当するというのは、会社として製品品質を担保できてないということだと思うのですが。上司の方と相談すべきでは? > BINフォルダへの格納じゃなくて、参照設定で追加する方法だったらうまくいくような気がするのですが NuGet パッケージをインストールすると参照設定に追加されるアセンブリの .dll は自動的に bin フォルダに追加されるはず。そのあたりは前にも書いたと思うのですが、聞いてもらってますか? NuGet でインストールしたのですよね。確認してみてください。 「参照設定で追加する方法だったらうまくいく」ってどういうことですか?
saya24

2019/10/13 10:33

うまくいくとは言えませんが、Web.config上にReportViwerのassembly定義をいれることを指しました。勿論BINフォルダに入ることは認識していました。参照マネージャーに も 表示されるようになったら良いな、と思ったまでです。
guest

回答1

0

自己解決

本件解決には至っていませんが、こちらに掲載した内容は ASP.NETのVerを維持したままのWebサイトを開発環境VS2012からVS2017/運用環境WindowsServer2008R2からWindowsServer2016へ移行する手立てを模索した問合せで、VS2017への移行過程(ReportViewerのからみ)で ASP.NET4.6の選択を決定し
問合せたい内容が その方策に偏ったものになってきたので MSDNフォーラムへ 移行させて頂きました。
今後も引き続きのご支援を頂けましたら幸いです。

投稿2019/10/16 02:16

saya24

総合スコア246

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問