强制 Internet Explorer 在 Visual Studio 中嵌入启动时将自己宣传为 IE11

Force Internet Explorer to advertise itself as IE11 when it's launched embedded in Visual Studio

在 Visual Studio 2015 内启动嵌入式 Internet Explorer 时,它根据用户代理字符串将自己宣传为 IE9(即使它实际上是 IE11)。这会导致 Udemy 等网站出现问题。我已按照以下网站中的说明进行操作:

http://www.cyotek.com/blog/configuring-the-emulation-mode-of-an-internet-explorer-webbrowser-control

我在注册表(32 位/64 位)中存在的两个 FEATURE_BROWSER_EMULATION 项下插入了一个名为 'devenv.exe' 的新 REG_DWORD。说 REG_DWORD 的值为 11001(十进制),也就是十六进制的 2af9。我也试过 11000 但也没有快乐。此注册表调整适用于除 Visual Studio 之外的所有其他应用程序。我在 Internet Explorer 选项下找不到任何可能有帮助的选项。非常感谢任何有关如何解决此问题的见解。

好消息和坏消息。

  • 好消息是 Visual Studio 似乎将其 'devenv.exe' REG_DWORD 放在不同的位置(根据 these instructions):

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

在上面的注册表路径中 'devenv.exe' 默认设置为 9999。

  • 坏消息是,即使您将上面的 'devenv.exe' 更改为 11000 Visual Studio 也会在重新启动时将值恢复为 9999。

考虑到所有因素,唯一的选择(至少在我看来)是启动 Visual Studio 并让它完全加载,然后将 devenv.exe 更改为 11000,然后在 Visual Studio 按照这个顺序。通过这个棘手的顺序,IE 在 VS 中作为 IE11 启动。也许更好的方法是创建某种脚本来更容易地实现相同的效果。

更新:我创建了一个小型 C# 实用程序,您可以在每次登录后每 5 分钟通过 Windows 调度程序调用它。该实用程序将 运行 持续 5 分钟,然后它将停止并从 Windows 调度程序重新启动(您必须传递命令行参数 '5' 才能发生)。每隔 10 秒左右,该实用程序会将上述注册表项设置为 11000。

https://www.dropbox.com/s/bqsbs34gfe0j341/VisualStudioUtilityForSettingIEtoMaxVersion.zip?dl=0

如果有比这个更好的方法,请随时告诉我。