3

最近、すべてのプロジェクトをVisualStudio2012と.Net4.5にアップグレードしました。ほとんどのプロジェクトには、製品構成を処理するカスタムMMCスナップインがあります。ランタイムはMMC3.0がリリースされてからずっと後に出荷されたため、MMC3.0は.Net4.0ランタイムをネイティブに処理しないことを学びました。

スナップインを修正して、ロード時にMMCがクラッシュしないようにする方法を探しています。また、mmc.exe.configファイルの追加について言及しているページをたくさん見つけました。私はこれを試しましたが、動作させることができません。

これを内容としてファイルを作成しました。

<configuration>
  <startup>
    <supportedRuntime version='v4.0.20506' />
    <requiredRuntime version='v4.0.20506' safemode='true' />
  </startup>
</configuration>

これをmmc.exe.configとしてwindows\system32ディレクトリとwindows\sysWOW64ディレクトリの両方に保存しましたが、このファイルが存在しても違いはありません。私のスナップインはまだ同じエラーメッセージでクラッシュします:

Could not load file or assembly 'xxxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d62dabb4275ffafc' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

MMCに.Net4.0ランタイムアセンブリを正しくロードさせるには、何をする必要がありますか?

4

2 に答える 2

7

私にとっては、MMCにv4フレームワークを使用するように指示することで機能します。v4.0.30319があります。

set COMPLUS_version=v4.0.30319
start SomeConsole.msc

回避策を確認してください:http: //connect.microsoft.com/VisualStudio/feedback/details/474039/can-not-use-net-4-0-to-create-mmc-snapin

そして、これは私のデバッグ設定です:ここに画像の説明を入力してください

私は32ビットバージョンのコンソールを使用しており、「c \ Windows \ SysWOW64\mmc.exe.config」に次のファイルを追加する必要がありました。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version='v4.0' />
    </startup>
</configuration>

お役に立てば幸いです。GL

于 2014-04-10T08:52:45.187 に答える
2

このページ(http://msdn.microsoft.com/en-us/library/ms692759%28VS.85%29.aspx)のコメントをご覧ください。マネージドMMCスナップインは、ほとんどのFramework3.5をターゲットにできるようです。

于 2013-04-11T19:04:51.833 に答える