有关 WPF 浏览器托管应用程序 (XBAP) 的常见问题解答

Windows Presentation Foundation (WPF) 于 2006 年作为 .NET Framework 3.0 的一部分发布。 XAML 浏览器应用程序 (XBAP) 功能(用于允许在 Web 浏览器中托管和运行 WPF 应用)也同时作为 WPF 的一部分引入。 当 WPF 和 XBAP 于 2006 年发布时,最流行的 Web 浏览器是 Internet Explorer 7、Mozilla Firefox 2 和 Safari 2。 Google Chrome 尚不可用,因为它于两年后的 2008 年发布。

XBAP 在浏览器中使用 ClickOnce 部署技术,这是一项 Microsoft 技术,用于允许用户通过单击网页中的链接来安装和运行应用。 但是,这项技术在很大程度上依赖于浏览器中 NPAPI(Netscape 插件应用程序编程接口)的支持。 由于安全性和稳定性问题,NPAPI 近年来已被逐步淘汰。 Edge、Chrome、Firefox 和 Safari 等主要浏览器删除了对 NPAPI 插件的支持,这实际上意味着在这些浏览器中无法再运行 XBAP 应用。

对 XBAP 的支持

Microsoft 目前为 XBAP 提供的支持的级别如何?

.NET Framework 支持 XBAP。 适用于 .NET 的 WPF 不包括 XBAP 支持。

是否有任何本机支持 XBAP 的浏览器?

否,不再有任何专为 XBAP 设计的受支持浏览器。 对 Internet Explorer 11 的支持已于 2022 年 6 月 15 日结束。 某些浏览器(如 Microsoft Edge 和 Google Chrome)具有 Internet Explorer 模式(IE 模式)功能,该功能添加了旧版 Internet Explorer 支持。 这些模式不是针对 XBAP 设计的,因此某些 XBAP 功能可能不起作用。 有关详细信息,请参阅什么是 Internet Explorer (IE) 模式

如何运行 XBAP?

XBAP 必须部署到 Web 服务器,并且你必须使用具有 Internet Explorer 模式(IE 模式)兼容性的浏览器。 可能需要配置本地策略才能在适当的 IE 安全区域中启用你的应用。 有关详细信息,请参阅什么是 Internet Explorer (IE) 模式以及设置适用于 Microsoft Edge(IE 模式)的旧版浏览器支持

迁移选项

是否可以将 XBAP 转换为 WPF 应用程序?

是的。 可以将应用迁移到标准 WPF 应用程序,并通过安装程序部署它。 你仍然可以使用 ClickOnce 发布 WPF 应用,但 ClickOnce 需要一个启用了 IE 模式的浏览器或一个用于启用 ClickOnce 的插件。

我需要在浏览器中运行,我有哪些选择?

  • 使用 Blazor 和 WebAssembly 的 ASP.NET Core

    Blazor 是一个使用 C# 的全栈 Web 应用。 根据代码的组织和分隔程度,你可能必须在 Blazor 中重写应用的前端。 可以使用 WebAssembly 部署 Blazor 应用,这样应用就可以在浏览器中完全运行客户端。

    有关详细信息,请参阅什么是 Blazor

  • .NET MAUI

    如果已将应用创建为 XBAP,以便它可以在非 Windows 操作系统上运行,请尝试将应用转换为 .NET MAUI(.NET MAUI 也将 XAML 用于其 UI)。 .NET MAUI 与 WPF 不同,尽管它们共享许多类似的概念。 有关详细信息,请参阅什么是 .NET MAUI

  • OpenSilver

    OpenSilver 项目是作为 Silverlight 的替代项创建的。 Silverlight 是 WPF 的一个子集,很久以前就已停止使用。 XBAP 项目可能会很好地转换为 OpenSilver。 有关详细信息,请参阅 OpenSilver 网站GitHub 存储库