3

我们最近将所有项目升级到 Visual Studio 2012 和 .Net 4.5。我们的大多数项目都有处理产品配置的自定义 MMC 管理单元。我现在了解到 MMC 3.0 本身并不能处理 .Net 4.0 运行时,因为运行时是在 MMC 3.0 发布很久之后才发布的。

我正在寻找一种方法来修复我们的管理单元,以便 MMC 在加载时不会崩溃,并且我遇到了很多提到添加 mmc.exe.config 文件的页面。我已经尝试过了,但我无法让它工作。

我创建了一个文件,其内容如下:

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

我在 windows\system32 和 windows\sysWOW64 目录中都将它保存为 mmc.exe.config,但是这个文件的存在没有任何区别。我的管理单元仍然崩溃并显示相同的错误消息:

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 正确加载 .Net 4.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>

希望它可以帮助你。总帐

于 2014-04-10T08:52:45.187 回答
2

查看此页面上的评论 ( http://msdn.microsoft.com/en-us/library/ms692759%28VS.85%29.aspx )。看起来托管 MMC 管理单元最多可以针对框架 3.5。

于 2013-04-11T19:04:51.833 回答