首页 > 解决方案 > 将 WebAssembly Blazor 转换为托管的

问题描述

我正在测试 Blazor.net,但由于 WebAssembly (.net Core 3.1) 中缺乏调试而立即失败了。

是否有一种快速简便的方法可以将我的 WebAssembly 应用程序重新配置为托管应用程序,以便我可以在开发示例时调试 .net 代码?

标签: c#.netblazor

解决方案


我刚刚看了这个视频,它展示了一个很好的技巧:

  • 将 2 个项目添加到您的解决方案,ServerApp 和 WasmApp。
  • 在您的 ServerApp 中,添加对 WasmApp 的引用
  • 在 ServerApp._Host.cshtml 中,将此行更改为使用WasmApp.App

    <component type="typeof(WasmApp.App)" render-mode="ServerPrerendered" />

  • 现在从 ServerApp 项目中删除所有 .razor 文件和生成的死代码。

您现在可以在 WasmApp 中开发所有 blazor 页面,也可以使用 ServerApp 运行它们。唯一的重复是在添加 css 或 js 文件时维护_Host.cshtmlindex.html并行。

视频 als 显示了一个附加功能来显示正在运行的内容:

@using System.Runtime.InteropServices

<p>Env: @Environment</p>

@code{
  string Environment = RuntimeInformation.IsOSPlatform(OSPlatform.Create("BROWSER")) // was "WEBASSEMBLY"
  ? "WebAssembly" 
  : "Server";

}

把它放在你的主页或 NavMenu 或其他东西上。


推荐阅读