2009-07-13 5 views
0

現在、MMCスナップインを開発中ですが、.NET 4.0フレームワークを使用して完了しました。 MMCはランタイムの以前のバージョンをロードしています。MMC .Netランタイムバージョン

ランタイムの古いバージョンを使用することは、プロジェクト全体が4.0(これまでの5000 LOC)で書かれているため、本当にオプションではありません。これは単なる管理フロントエンド(それはすばらしい:P)です。

MMCレジストリキーを確認しましたが、そこにバージョンv4.0.20506があります。どこでも他のMMCの.Net相互運用設定を見つけることができません。

アイデア?たぶん、これはいくつかの助けになるだろう

+0

アドインを開発するためにDev10を使用していると仮定しています。 64ビットマシンでも実行していますか? – mfawzymkh

+0

@mfawzymkh yep - それは私が座っているところです –

答えて

3

、私は、ホストプロセスが明示的に.NET 4.0にsome new APIsを介して複数のランタイムをサポートしなければならないことを確認することができます。

.NET 4.0もベータ版であるため、MMC(Windows 7でも)がこれらのAPIをサポートしているかどうかは疑問です。それがないとは考えにくいのチャンスでは、あなたの設定でsupportedRuntime要素を使用して、それを使用するように強制することができます:それに失敗

<configuration> 
    <startup> 
     <supportedRuntime version="v4.0.20506"/> 
    </startup> 
</configuration> 

、しかし、私はあなたが運の外で怖いです。あなたの唯一の選択肢は、.NET 2.0をターゲットとするようにプロジェクトを変更することです。

また、独自のランタイムをホストし、管理対象のMMCスナップインを読み込むこともできます。 NET 4.0の機能がどれくらいひどく必要ですか?

+0

ありがとう。私はこれを打つつもりです - どれくらいひどく私はそれらを必要としますか?私が個人的に書いた6000 LOCは、それ以来フレームワーク4にアップグレードされています... –

+0

これらの行のうち、どれが.NET 4.0依存関係になっていますか? EF4、WF4、動的キーワード、または新しいAPIを使用していますか?もしそうでなければ、恐らく2.0に対してほとんど変更を加えることなく実行することができます。 –

+0

(2.0は2.0〜3.5を意味します) –

1

...またはあなたは、環境変数を次のようにV4.0を使用するようにMMCを強制することができます。

set COMPLUS_Version=v4.0.30319 
1

Microsoftは以来http://msdn.microsoft.com/en-us/library/windows/desktop/gg983006(v=vs.85).aspx は基本的に、あなたは魔法のような環境変数を作成してMMCとCLRのバージョンについて、この記事を掲載していますCLRの起動時に、MMCスナップイン固有の構成ファイルが表示されます。

個人的には、CLR 4を使用するようにMMC.EXEを変更しただけであれば、誰もが簡単に生活できるようになりましたが、何らかの理由でその方向に向かないと決めました。

関連する問題