none
.NET Framework 1.1と2.0 RRS feed

  • 質問

  • お世話になります。

    .NET Framework 1.1と2.0の互換性について調べていますが、不明な点があります。

    1.1と2.0の両方がインストールされた実行環境で動作させる場合、

    ・1.1の開発環境で作成されたDLL

    ・2.0の開発環境で作成されたEXE

    から構成されるアプリケーションは、共通ランタイムをどのように使用しますか?

    アプリケーション全体として2.0のランタイムだけを使用するのでしょうか。
    それとも、DLLは1.1のランタイムを使用し、EXEは2.0のランタイムを使用というふうに、個別のバージョンのランタイムを使用するのでしょうか。

    2006年5月18日 14:17

すべての返信

  • ・1.1の開発環境で作成されたDLL
    ・2.0の開発環境で作成されたEXE

    1つのプロセス内に存在できる.NET Frameworkは1バージョンだけです。

    すなわち、上記の前提は成り立ちません。

    1つ抜け道があるのは、1.1DLLを強制的に2.0で動かすことですが、きちんと2.0でコンパイルするか、対応版を入手しましょう。

    2006年5月18日 14:56
  • > アプリケーション全体として2.0のランタイムだけを使用するのでしょうか。

    そのとおりです。
    exeファイルの起動時にどのランタイムで動くかが決定されます。

    > DLLは1.1のランタイムを使用し、EXEは2.0のランタイムを使用というふうに、個別のバージョンのランタイムを使用するのでしょうか。

    こうなってくれると、前のバージョンで作成したDLLを使い続けられるのでうれしい面もありますよね。
    こういったことが将来的にできるように研究してる、という話はどこかで見たことがあります。

    2006年5月18日 15:22
  • 中さん、返信ありがとうございます。

     

    やはり、1つのプロセスに対して1つの.NET Frameworkが対応するという形になるのですね。

    http://msdn2.microsoft.com/ja-jp/library/9w519wzk.aspx

    MSDNのこの辺を見ているうちに混乱してしまいました。

     

    >1つ抜け道があるのは、1.1DLLを強制的に2.0で動かすことですが、きちんと2.0でコンパイルするか、対応版を入手しましょう。

     

    他者が作成したDLLで2.0でコンパイルし直せない場合や2.0対応版が入手できない場合は・・・2.0で無理やり動かしてひたすら動作確認するか、潔くあきらめるしかなさそうですね。

     

     

    2006年5月18日 15:45
  • >他者が作成したDLLで2.0でコンパイルし直せない場合や2.0対応版が入手できない場合は・・・2.0で無理やり動かしてひたすら動作確認するか、潔くあきらめるしかなさそうですね。

    コンポーネントメーカの物とかってどうしてもVisual Studioが出てから間が空くのでこのあたりが歯がゆいですね。

    DLLの参照が.NET Frameworkの各種バージョンを参照してもOKになってくれれば確かに解決しますが、AppDomainに複数混在しちゃったり諸々で問題が出るのでしょう。

    2006年5月18日 15:52
  • どっとねっとふぁんさん、返信ありがとうございます。

     

    >> DLLは1.1のランタイムを使用し、EXEは2.0のランタイムを使用というふうに、個別のバージョンのランタイムを使用するのでしょうか。

    >こうなってくれると、前のバージョンで作成したDLLを使い続けられるのでうれしい面もありますよね。
    >こういったことが将来的にできるように研究してる、という話はどこかで見たことがあります

     

    そうなのですか!まさに今、その機能が欲しいです。と言っても、間に合わないですね。残念です。ですが、有益な情報ありがとうございます。

     

    2006年5月18日 15:53
  • 中さん、返信ありがとうございます。

     

    コンポーネントメーカの物とかってどうしてもVisual Studioが出てから間が空くのでこのあたりが歯がゆいですね。

     

    そのまま使えれば短縮できるはずの工数のことを考えると、涙を禁じえません。

     

    >DLLの参照が.NET Frameworkの各種バージョンを参照してもOKになってくれれば確かに解決しますが、AppDomainに複数混在しちゃったり諸々で問題が出るのでしょう。

     

    3.0がリリースされる頃には、解決を期待したいですね。

    2006年5月18日 16:05
  • その夢のような話は,Singularity というOS上での話ですね... たぶん。

    その世界では,すべてのものがプロセス間通信になるんだけど,
    リング0 (あの リング0 ではない)で動くのでコストがかからない...
    うんぬんだったような。

    ただ,あくまで研究目的のようなので。

    2006年5月19日 1:47