最近,我们将所有项目升级到了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运行时程序集?
最佳答案
对我来说,它可以告诉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