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

如何配置dotnet publish参数发布托管Blazor WASM的ASP.NET Core项目

问题根源与解决方案

你的命令核心问题是混淆了托管Blazor WebAssembly项目中服务器端与客户端的发布规则:

  • 托管Blazor WASM项目包含两部分:运行在服务器的ASP.NET Core宿主程序,以及运行在浏览器的WASM客户端程序。
  • 客户端WASM环境不支持UseAppHost=True(浏览器不需要本地应用主机),但服务器端的单文件发布又强制要求UseAppHost=True,导致参数冲突。
  • Visual Studio的发布按钮会自动区分两部分的配置:对服务器端应用使用单文件/应用主机参数,对WASM客户端自动跳过不兼容的配置,所以能成功发布。

正确的命令行配置

需要为服务器端指定目标RuntimeIdentifier(RID),让dotnet明确知道要为服务器平台生成可执行文件,WASM客户端部分会自动按其规则发布。示例命令如下(以Windows x64平台为例):

& "C:\Program Files\dotnet\dotnet.exe" publish D:\OrderStatus.Gui.Host\OrderStatus.Gui.Host.csproj 
    --configuration Release --framework net8.0 
    --output D:\output\ --self-contained True --verbosity Minimal 
    --runtime win-x64
    /property:PublishSingleFile=True /property:DebugType=None 
    /property:UseAppHost=True

参数说明:

  • --runtime win-x64:指定服务器端的目标平台,可根据实际需求替换为win-x86、linux-x64等对应RID。
  • 保留PublishSingleFile=True和UseAppHost=True:这两个参数仅作用于服务器端ASP.NET Core应用,dotnet会自动忽略WASM客户端的不兼容配置。

执行此命令后,你会得到和Visual Studio发布一致的结果:服务器端是单文件自包含的可执行程序,客户端WASM文件正常生成在wwwroot/_framework目录下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:02:46