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

如何通过编程方式启动本地Blazor Server应用?支持控制台或WinForm触发

如何编程启动Blazor Server应用

当然可以,以下是两种常用实现方式,效果和VS点击调试按钮一致:

方法一:通过执行dotnet命令启动

Blazor Server本质是ASP.NET Core应用,直接调用dotnet run命令就能启动项目,你可以在控制台项目或Windows应用的按钮点击事件中执行这个命令:

WinForms按钮点击示例代码

private void btnLaunchBlazor_Click(object sender, EventArgs e)
{
    var startInfo = new ProcessStartInfo
    {
        FileName = "dotnet",
        Arguments = "run --project \"D:\\Projects\\MyBlazorServerApp\\MyBlazorServerApp.csproj\" --launch-profile \"https\"",
        WorkingDirectory = "D:\\Projects\\MyBlazorServerApp",
        CreateNoWindow = false, // 设为true则隐藏控制台窗口
        UseShellExecute = true
    };

    Process.Start(startInfo);
}

控制台项目示例代码

static void Main(string[] args)
{
    var startInfo = new ProcessStartInfo
    {
        FileName = "dotnet",
        Arguments = "run --project \"D:\\Projects\\MyBlazorServerApp\\MyBlazorServerApp.csproj\"",
        WorkingDirectory = "D:\\Projects\\MyBlazorServerApp"
    };

    using var process = Process.Start(startInfo);
    process.WaitForExit();
}

方法二:直接引用Blazor项目并启动宿主

如果不想依赖外部命令,可以将Blazor Server项目改为类库,直接在应用中启动ASP.NET Core宿主:

步骤1:修改Blazor项目配置

编辑Blazor Server项目的.csproj文件,将输出类型改为类库:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <OutputType>Library</OutputType> <!-- 添加这行 -->
  </PropertyGroup>
</Project>

步骤2:编写启动代码

在Windows应用或控制台项目中引用Blazor项目,然后编写启动逻辑:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;

// WinForms按钮事件示例
private async void btnStartBlazorHost_Click(object sender, EventArgs e)
{
    var host = Host.CreateDefaultBuilder()
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<MyBlazorServerApp.Startup>(); // 替换为Blazor项目的Startup类
            webBuilder.UseUrls("https://localhost:5001;http://localhost:5000"); // 匹配项目的调试端口
        })
        .Build();

    await host.RunAsync();
}

注意事项

  • 确保本地安装了与Blazor项目匹配的.NET SDK版本
  • 使用--launch-profile参数可以指定和VS调试一致的环境配置(对应项目Properties/launchSettings.json中的配置)
  • 若启动后需要关闭Blazor应用,需手动终止对应的dotnet进程,或在宿主启动时保留引用以便后续停止

内容的提问来源于stack exchange,提问作者Üh Lieh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 04:45:05