MEF 不适用于 Windows 8.1 或更高版本的设备
MEF doesn't work on devices with Windows 8.1 or above
我在 .NET 4 WinForms 应用程序中使用托管扩展框架。在我的 Windows 8、在 Hyper-V 上全新安装 Windows XP SP3、在 Windows 7 以及通常低于 Win 8.1 的任何地方,一切都运行良好。
问题仅在Windows 8.1 或更高版本中出现 - 没有错误或异常,但没有找到插件。
我没有附加任何代码,因为我已经尝试 运行 来自 MSDN 的 MEF 官方示例应用程序,即使它在 8.1 (https://code.msdn.microsoft.com/windowsdesktop/Simple-Calculator-MEF-1152654e) 上也不起作用。主项目中定义的导出工作正常,但找不到来自 DLL 项目的导出。
我已经在几台机器上尝试了这两个应用程序,结果总是一样的 - 只要低于 Windows 8.1...
,一切都运行良好
Windows 8.1 中是否存在阻止从 DLL 加载 MEF 扩展的错误...?
找到原因-包含取模操作的DLL默认被系统屏蔽,需要用户手动解除屏蔽才能生效。
如果 Windows 至少注意到用户以某种方式阻止了其中一个文件,甚至询问用户这件事,那就太好了...
无论如何,手动解锁 DLL 后,一切正常:
我在 .NET 4 WinForms 应用程序中使用托管扩展框架。在我的 Windows 8、在 Hyper-V 上全新安装 Windows XP SP3、在 Windows 7 以及通常低于 Win 8.1 的任何地方,一切都运行良好。
问题仅在Windows 8.1 或更高版本中出现 - 没有错误或异常,但没有找到插件。 我没有附加任何代码,因为我已经尝试 运行 来自 MSDN 的 MEF 官方示例应用程序,即使它在 8.1 (https://code.msdn.microsoft.com/windowsdesktop/Simple-Calculator-MEF-1152654e) 上也不起作用。主项目中定义的导出工作正常,但找不到来自 DLL 项目的导出。
我已经在几台机器上尝试了这两个应用程序,结果总是一样的 - 只要低于 Windows 8.1...
,一切都运行良好Windows 8.1 中是否存在阻止从 DLL 加载 MEF 扩展的错误...?
找到原因-包含取模操作的DLL默认被系统屏蔽,需要用户手动解除屏蔽才能生效。
如果 Windows 至少注意到用户以某种方式阻止了其中一个文件,甚至询问用户这件事,那就太好了...
无论如何,手动解锁 DLL 后,一切正常: