- PR -

.NetFrameworkのバージョン指定

1
投稿者投稿内容
ZERO
常連さん
会議室デビュー日: 2006/12/14
投稿数: 48
投稿日時: 2007-09-20 00:52
いつも拝見させていただいています。

VB.NetにてActiveXを作成したのですが、
.Netのバージョンが1.1と2.0が共存したマシンの場合に不具合が起きてしまって
困っています。

元々1.1で作成したのですが、実行時に2.0のほうを使用しているようです。

他のAPIを使用しているシステムなのであまり詳しいことは書けませんが、
単純に1.1を使用するように指定したいだけなのです。

exeの場合はconfigファイルを使えばいいということは分かったのですが、
DLLのみの場合はどのようにすれば良いか分かりません。

環境としては以下の通りです。
OS:WindowsXP Pro
VS:VisualStudio2003

ご存知の方がいましたら教えていただけないでしょうか?
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-09-20 09:29
どのバージョンの CLR を使うのかを決定できるのは、プライマリのアセンブリ(要はexe)か、CLR をホスティングするプロセスです。DLL は決定権を持ちません。

.NET で ActiveX コントロールを作った事がないので間違っているかもしれませんが、ここでは ActiveX コントロールを読み込むのは IE だとしましょう。

CLR をホスティングするのは IE なので、IE がどのバージョンの CLR を使うのかを決定します。注意しなければならないのは、現状では一つのプロセスに一つの CLR しかロードできないという事です。つまり、IE が最初に CLR v2.0 をロードしてしまえば、CLR v1.0 をロードできません。

で、IE がロードする CLR のバージョンを指定できるのかという話になるのですが、IE 用に config を書いてみるかでしょうね。言うまでもなく、これは暴挙ですので注意して下さい。

IE は最初にロードするマネージアセンブリのバージョンによってどのバージョンの CLR ロードオするのかを決めているんじゃないのかなぁという気がしますが(要は変更できない)。


_________________
囚人のジレンマな日々

[ メッセージ編集済み 編集者: 囚人 編集日時 2007-09-20 09:30 ]
ZERO
常連さん
会議室デビュー日: 2006/12/14
投稿数: 48
投稿日時: 2007-09-20 09:36
囚人様

返信ありがとうございます。

何となく変更できないような気はしていたのですが・・・

使用しているAPIについて調べてみようかと思います。
1

スキルアップ/キャリアアップ(JOB@IT)