首页 > 解决方案 > 将 IE 扩展移植到 WebAssembly

问题描述

我使用 Visual Studio .Net 4.5.2 Framework 为 C# 中的 Internet Explorer 开发了一个扩展,我想将它移植到 Chrome 和 Edge (Chromium)。这是一个相当复杂的扩展,包含我开发的 6 个定制 C# 库,这些库又使用了许多系统库,包括 Microsoft.mshtml 和 System.Windows.Forms。我希望构建为 WebAssembly 将被证明是一个可行的解决方案。

我尝试使用带有 Windows.Wasm 的 Visual Studio 2019 以及 Mono.Wasm 移植到 .Net 5.0,但这些只是引发了一系列兼容性挑战。

谁能推荐我应该看看的替代方法。我正在考虑尝试 Blazor(尽管这似乎更面向服务器端而不是客户端)、Ooui.Wasm 和 Uno 平台。

问候,霍华德

标签: asp.netwebassembly

解决方案


Blazor 有两种不同类型的项目,一种是 Blazor Server App,显然是服务器端,另一种是 Blazor WebAssembly App,可用于开发客户端浏览器扩展。我也打算使用 Blazor 创建浏览器扩展,因此我创建了一个包来帮助其他人也实现同样的目标。随时查看我在GitHub上的 repo 以了解如何操作。此包包括与 WebExtensions API 交互以实现跨浏览器兼容性的能力。Mozilla 开发的浏览器 APi polyfill 也已加载,因此您也可以在 Chrome 中使用 WebExtensions API。

但是,在您的场景中,无法使用 Blazor 使用 WinForms,因此您必须将它们转换为 Razor 组件。


推荐阅读