时间:2010-07-26 12:13:20

标签: internet-explorer user-controls .net-4.0 c#-4.0

2 个答案:

答案 0 :(得分:9)

IE中的托管控件现在默认被阻止(从v4或v4.5开始)。请参阅“网络应用程序”下的MSDN article

幸运的是,使用这些reg键重新启用功能非常容易:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"EnableIEHosting"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]
"EnableIEHosting"=dword:00000001

x64密钥是为我修复的密钥,使用为x32编译的.Net v3.5 SP1控件在Win7(x64)上运行IE8(x32)。

答案 1 :(得分:0)

好的,经过多次测试,我已经成功实现了它。以下是您应该记住的一些事项:

  • 您无法针对.NET 4.0编译程序集,因为在.NET 4.0中不推荐使用IEHost。因此,您必须针对.NET 3.5进行编译
  • 由于您正在编译.NET 3.5,请不要忘记在.NET 2.0配置控制台中设置正确的安全策略

而且,最重要的是:不要忘记在正确的.NET版本中设置策略。在我的情况下,我在x64机器上运行,所以我继续安装x64位版本。在安装的控制台中设置正确的策略并没有真正起作用,所以我不得不下载并安装x86版本。在这之后,一切都开始运作良好(毕竟,IE作为32位应用程序运行)

再一次,我无法理解MS在不引入新选项的情况下弃用IEHost的决定。