none
WebBrowserのバージョン RRS feed

  • 質問

  • Visual Studio 2005でc#のWebBrowserを利用するアプリケーションを作ったのですがブラウザのバージョンがIE7のため表示できないURLがあり、

    参考URLの通りレジストリに書き足してバージョン指定をしてみたのですが上手くいきませんでした。

    そこで、Visual Studioの2010か2012を購入すればWebBrowserをバージョン8以上で利用できるようになるものでしょうか?
    そして2005で.NET2.0用に作成したアプリケーションを読み込み、そのまま.NET2.0用に簡単に配布できるものでしょうか?

    よろしくお願いします。

    2014年8月30日 5:57

回答

  • せめてWebBrowserコントロールがIE8になってくれればいいんですけど、暫くだめでしょうかね(';')

    WebBrowser コントロールは自分自身で Web ブラウザーの機能を実装しておらず、Internet Explorer が提供する機能を利用するように作られています。
    このため、実行環境の Internet Explorer のバージョンが新しく、かつ実行環境ごとにレジストリが適切に設定されていなければなりません。
    (個人的な意見としては、この状況が変化するとは思えません)

    それがいやなのであれば、WebBrowser コントロールをあきらめるしかありませんが、自分で Web ブラウザの代わりを実装することになるので多大な労力が発生するので現実的ではありません。

    • 回答としてマーク 星 睦美 2014年9月11日 2:40
    2014年8月30日 16:01
    モデレータ

すべての返信

  • 2010 で作ろうと、2012 で作ろうと、.NET 2.0 向けのアプリが 2005 と振る舞いが変わるわけではありません。
    試すだけなら Express が無料配布されていますので、試してみるとよいでしょう。

    ちなみに、どのサイトを参考にどのようなレジストリを書かれたのでしょうか。

    2014年8月30日 7:20
    モデレータ
  • IE8以降で動作させたいのであれば、IE8以降がインストールされている環境で実行されていなければなりません。

    WebBrowserコントロールはWindowsにインストールされているInternetExplorerを使用しています。これは、実行された時に使用されているIEのバージョンは、WebBrowser.Versionプロパティで確認することができます。(リンク先の解説にIEをそのまま使っているという意味の説明が書かれています。)
    そのため、実行したときにIE7がインストールされていればIE7が、IE8以降がインストールされていればそのバージョンとなります。
    また、IEは複数のバージョンを共存させることができないので、設定を変更するといった方法で異なるバージョンとすることもできません。(互換動作を除く)

    VisualStudio2005は.NetFramework2.0のみでした。
    ですがVS2008以降では2.0以降のバージョン向けにコンパイルが行え、2010だと2.0~4.0まで、2013だと2.0~4.5.2の使いたいバージョンに簡単な設定変更で切り替えることができます。
    プロジェクトも自動でアップデートされますが、何もしなければ2.0向けのままになります。

    配布に関しては、セットアッププロジェクトを使用しての配布していた場合、セットアッププロジェクトが2012でなくなりましたので、簡単に移行できない場合があります。ただし、セットアッププロジェクトはVS2013の拡張機能として復活しているので、使用したい場合は2012でなく2013にするといいでしょう。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2014年8月30日 7:32
  • 早速回答いただきありがとうございます。

    2013のアップグレード版が安かったので購入しようと思っています。

    参考にしたサイトはこちらです。

    ■すいません、アカウントが確認できないとかでURLが入れられないので

    「c# webbrowser バージョン」でgoogle検索した以下の項目です

    [C#] WebBrowser コントロールで使われている Internet ...

    的外れな事をやっていたのかもしれませんが、2013でもう一度試してみようと思います。

    2005で作ったファイルを読み込んで特に何もしなくてもブラウザのバージョンが上がればいいんですが、、。

    2014年8月30日 7:59
  • ありがとうございます。

    お薦めいただいた2013のアップグレード版を購入して

    windows8に入れようと思います。

    2014年8月30日 8:01
  • お薦めいただいた2013のアップグレード版を購入してwindows8に入れようと思います。

    gekka さんの指摘されている「IE7 しか入っていない環境(=実行環境)では実現できない」は、開発環境をどのように変えようと変わりませんが、その認識の上で、開発環境を変えると書かれているのでしょうか?

    開発環境を変えても、実行する環境が IE7 のままであれば、IE7 までの機能しか動きません。
    従って、実行環境の前提条件として「IE8 以上がインストールされていること」みたいなものが必要になります。
    これは Visual Studio をアップグレードする・しないに関わらず、変化しない前提条件となります。

    2014年8月30日 8:39
    モデレータ
  • 私も勘違いがあったので訂正です。

    WebBrowserコントロールはIE8以降が入っている環境で実行してもIE7の互換動作をするようです。
    IE8以降の環境であればレジストリ変更でIE8以降の動作をさせられるということらしいのですが、逆にIE7の環境ではIE8以降にすることができないのでkirameki4782さんの最初の質問になるわけですね。
    Windows8を既にお持ちなのであれば、その参照しているサイトの情報の通りにすればIE8以降になると思います。

    あと、新規に2013される前にExpress版で動作確認をされることをお勧めします。



    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2014年8月30日 9:11
  • 併せて、レジストリを設定するのも(開発環境ではなく)実行環境で行う必要があります。

    # 何を試みて「上手くいきませんでした」なのかいまいち不明確です。

    2014年8月30日 15:09
  • 私がしっかり理解できてないようですいません。

    実行環境でレジストリ設定ということは、、アプリケーションを使うPC毎設定しなくては駄目ということでしょうか?

    2014年8月30日 15:34
  • YESです
    2014年8月30日 15:42
  • Express版にと思いましたが、アップグレード版をダウンロード購入してしまいました。

    でも、皆さんのご指摘通り、、見事にWebBrowserはIE7のままで、NTTのタウンページは表示しませんでした。

    せめてWebBrowserコントロールがIE8になってくれればいいんですけど、暫くだめでしょうかね(';')

    2014年8月30日 15:47
  • せめてWebBrowserコントロールがIE8になってくれればいいんですけど、暫くだめでしょうかね(';')

    WebBrowser コントロールは自分自身で Web ブラウザーの機能を実装しておらず、Internet Explorer が提供する機能を利用するように作られています。
    このため、実行環境の Internet Explorer のバージョンが新しく、かつ実行環境ごとにレジストリが適切に設定されていなければなりません。
    (個人的な意見としては、この状況が変化するとは思えません)

    それがいやなのであれば、WebBrowser コントロールをあきらめるしかありませんが、自分で Web ブラウザの代わりを実装することになるので多大な労力が発生するので現実的ではありません。

    • 回答としてマーク 星 睦美 2014年9月11日 2:40
    2014年8月30日 16:01
    モデレータ