如何从命令行运行Blazor托管应用?
如何从命令行运行Blazor托管(WebAssembly)应用
我来帮你解决这个问题——Blazor托管应用的命令行启动核心在于服务器项目是整个应用的入口,客户端WASM的静态文件是由服务器项目负责托管和提供的,之前的失败大概率是因为没找准正确的项目目录或启动方式。下面是详细步骤:
一、本地开发环境直接运行
- 导航到服务器项目根目录
比如你的解决方案叫MyBlazorApp,服务器项目通常命名为MyBlazorApp.Server,打开命令行切换到这个文件夹:cd ./MyBlazorApp/MyBlazorApp.Server - 执行启动命令
直接运行dotnet run,这个命令会自动构建服务器项目和依赖的客户端/共享项目,然后启动服务器:
如果你的项目有多个启动配置(比如默认的HTTP和HTTPS),可以指定启动 profile:dotnet run
要是不想切换目录,也可以从解决方案根目录直接指定项目路径启动:dotnet run --launch-profile "https"dotnet run --project ./MyBlazorApp.Server/MyBlazorApp.Server.csproj
二、发布后运行(用于部署场景)
如果是要部署到Cloud Foundry,你需要先正确发布服务器项目,再运行发布后的文件:
- 发布服务器项目
切换到服务器项目根目录,执行发布命令(-c Release表示发布生产版本):
发布完成后,所有运行所需的文件会生成在dotnet publish -c Releasebin/Release/netcoreapp3.1/publish目录下(路径中的netcoreapp3.1是你的项目目标框架版本,会根据实际情况变化)。 - 启动发布后的应用
导航到publish目录,用dotnet命令启动服务器dll:
(Windows环境下也可以直接运行生成的exe文件,但框架依赖部署的话需要确保目标环境有对应的.NET运行时,用cd ./bin/Release/netcoreapp3.1/publish dotnet MyBlazorApp.Server.dlldotnet命令更通用)
三、部署到Cloud Foundry的额外注意事项
Cloud Foundry部署Blazor托管应用本质是部署ASP.NET Core服务器,你可以这样操作:
- 先完成上面的发布步骤,得到publish目录。
- 创建
manifest.yml文件(放在解决方案根目录或服务器项目根目录),示例配置:applications: - name: my-blazor-app path: ./MyBlazorApp.Server/bin/Release/netcoreapp3.1/publish buildpacks: - dotnet_core_buildpack - 执行推送命令:
或者直接在命令行指定路径:cf push
注意:确保Cloud Foundry的cf push my-blazor-app -p ./MyBlazorApp.Server/bin/Release/netcoreapp3.1/publishdotnet_core_buildpack支持你的.NET版本(netcoreapp3.1需要对应版本的buildpack)。
常见问题排查
- 如果之前在解决方案根目录运行
dotnet run失败,是因为解决方案包含多个项目,dotnet不知道要启动哪个,必须用--project参数指定服务器项目。 - 检查服务器项目的
.csproj文件,确认它包含了对客户端项目的引用(Blazor托管模板默认已经配置,比如<ProjectReference Include="..\MyBlazorApp.Client\MyBlazorApp.Client.csproj" />),并且Startup/Program类中配置了静态文件托管(模板默认已包含)。 - 确认本地安装的.NET SDK版本和项目目标框架匹配,用
dotnet --version查看版本。
内容的提问来源于stack exchange,提问作者BrianM
相关产品推荐
相关产品推荐

