同じプロセスで.NETランタイムの2つのバージョンをロードすることは可能ですか?

StackOverflow https://stackoverflow.com/questions/201663

質問

明確にする必要がある2つのシナリオがあります:

  1. .NET 3.5でコンパイルされた実行可能ファイルは、.NET 1.1でコンパイルされたライブラリを使用する必要があり、ライブラリは1.1ランタイムで実行する必要があります。

  2. .NET 1.1でコンパイルされた実行可能ファイルは、.NET 3.5でコンパイルされたライブラリを使用する必要があります。

.NETランタイムの2つのバージョンを読み込むことができないことを示す信頼できるソースが見つかりません。Microsoftのドキュメントはこの問題について非常にあいまいです。

役に立ちましたか?

解決

いいえ-CLRを同じプロセスに2回ロードすることはできません。 CLRホスティング

のドキュメントを参照してください。
  

の以前のバージョンと同様   ランタイム、CorBindToRuntimeEx   関数はランタイムを初期化します。君は   のバージョンを選択できます   ロードするランタイムですが、プロセスは    1つのバージョンのみをホストする

他のヒント

ケース#1の場合、ライブラリを1.1ランタイムでホストする必要がある特定の理由(たとえば、重大な変更)がありますか? 1.1でコンパイルされたWebサービスを介してライブラリを公開し、代わりにWebサービスを実行可能ファイルに指定することは可能ですか? (または、ライブラリを独自のプロセスで取得するためのその他のリモーティング手法?)

ケース#2の場合、2.0 / 3.5で1.1アプリを再コンパイルして、同じプロセスに常駐させることは可能ですか?

いずれにせよ、Rob Walkerは正しいです(私は賛成しました)-同じプロセスで2つのバージョンのランタイムをホストすることはできません。そのため、どうにかして回避する必要があります。どちらの場合でも、ソースが利用可能でなければならないので、再コンパイルと再テストが再生されるはずだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top