You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让.NET Core 8 Blazor Client-Server WASM发布目录包含Razor页面?

解决Blazor Server-WASM项目发布后不包含.razor文件的问题

核心原因

Blazor项目默认会把.razor文件编译为程序集(.dll)嵌入到发布包中,不会保留原文件。要实现可更新的.razor页面,需要调整项目配置,让这些文件被复制到发布目录,同时启用运行时编译支持动态更新。

步骤1:修改WASM客户端项目配置

打开客户端项目的.csproj文件,添加以下配置:

<ItemGroup>
  <!-- 复制所有.razor文件到发布目录,保留最新版本 -->
  <Content Include="**/*.razor">
    <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  </Content>
  <!-- 确保Pages目录结构完整保留 -->
  <Content Include="Pages/**/*.razor">
    <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  </Content>
</ItemGroup>

<!-- 启用WASM运行时编译,修改razor文件后刷新浏览器即可生效 -->
<PropertyGroup>
  <BlazorWebAssemblyEnableRuntimeCompilation>true</BlazorWebAssemblyEnableRuntimeCompilation>
</PropertyGroup>

步骤2:修改Server端项目配置

针对服务器端的组件,同样修改服务器项目的.csproj:

<ItemGroup>
  <!-- 复制服务器端所有.razor组件到发布目录 -->
  <Content Include="**/*.razor">
    <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  </Content>
</ItemGroup>

<PropertyGroup>
  <!-- 启用Blazor Server运行时编译,修改组件后重启服务生效 -->
  <BlazorEnableRuntimeCompilation>true</BlazorEnableRuntimeCompilation>
</PropertyGroup>

步骤3:验证配置效果

重新发布项目后,检查发布目录:

  • WASM客户端的输出目录下会出现所有.razor文件,Pages目录结构完整保留
  • Server端发布目录中会包含服务器组件的.razor文件

注意事项

  • 运行时编译会带来轻微性能开销,若生产环境不需要频繁更新页面,可关闭运行时编译配置,仅保留文件复制规则
  • 若使用Razor类库(RCL)存放共享组件,需要在RCL的.csproj中添加同样的文件复制配置
  • 更新.razor文件后:Server端需重启服务,WASM客户端刷新浏览器即可加载新内容

内容的提问来源于stack exchange,提问作者Manoj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 11:17:14