Windows Store应用集成旧COM技术:ROT访问及相关限制确认
针对Windows Store应用集成问题的解答
先说第一个问题:Windows Store中的WebView控件是否不支持运行VBScript?
是的,UWP(Windows Store)应用里的WebView控件(无论是基于旧EdgeHTML的WebView,还是现在基于Chromium的WebView2)都不支持运行VBScript。这主要是出于安全沙箱的限制,现代Web标准也逐步淘汰了VBScript这类老旧脚本技术。而且UWP的WebView没有提供任何配置选项来启用VBScript,毕竟你的场景里是第三方网站通过VBScript调用ROT里的COM组件,这种跨沙箱的操作在UWP的安全模型里是被严格禁止的——哪怕旧VC++桌面应用能正常运行,UWP的沙箱规则也不允许这类行为。
再来说第二个问题:Windows Store应用是否无法引用封装COM接口的.NET Framework DLL(而非.NET Core)?
没错,纯UWP应用是无法直接引用封装COM接口的.NET Framework DLL的。原因主要有两点:
- UWP应用运行在独立的安全沙箱中,只能加载符合UWP应用模型的组件,比如.NET Core/.NET 5+的UWP类库、Windows Runtime组件,或者经过适配的桌面桥(Desktop Bridge)组件。
- .NET Framework是针对传统桌面应用设计的,其运行环境和UWP的沙箱环境完全不兼容,直接引用会导致加载失败甚至应用崩溃。如果你的COM组件必须在UWP场景下使用,可行的方案是把COM接口封装成Windows Runtime组件(可用C++或.NET Core编写),或者考虑用桌面桥把原本的桌面应用打包成MSIX格式的“桌面桥应用”——这类应用可以保留桌面应用的能力,包括加载.NET Framework DLL和支持VBScript的Web控件。
内容的提问来源于stack exchange,提问作者Pat Long - Munkii Yebee
相关产品推荐
相关产品推荐

