Asgard.Yggdrasil.AspNetCore
4.1.1
dotnet add package Asgard.Yggdrasil.AspNetCore --version 4.1.1
NuGet\Install-Package Asgard.Yggdrasil.AspNetCore -Version 4.1.1
<PackageReference Include="Asgard.Yggdrasil.AspNetCore" Version="4.1.1" />
<PackageVersion Include="Asgard.Yggdrasil.AspNetCore" Version="4.1.1" />
<PackageReference Include="Asgard.Yggdrasil.AspNetCore" />
paket add Asgard.Yggdrasil.AspNetCore --version 4.1.1
#r "nuget: Asgard.Yggdrasil.AspNetCore, 4.1.1"
#:package Asgard.Yggdrasil.AspNetCore@4.1.1
#addin nuget:?package=Asgard.Yggdrasil.AspNetCore&version=4.1.1
#tool nuget:?package=Asgard.Yggdrasil.AspNetCore&version=4.1.1
Asgard.Yggdrasil.AspNetCore
Asgard.Yggdrasil.AspNetCore 是 Asgard 的 ASP.NET Core 宿主包,面向希望保留自己应用入口、同时复用 Asgard 基础设施和插件生命周期的团队。
对于大多数应用团队来说,这通常是最推荐的 NuGet 入口。
适用场景
- 自己维护
Program.cs,但想快速获得 Asgard 主机能力 - 使用内建插件模式组织业务模块
- 统一接入 Swagger、鉴权、健康检查、静态资源和插件生命周期
- 需要完整宿主体验,而不是只要单个运行时能力
安装
dotnet add package Asgard.Yggdrasil.AspNetCore
推荐接入方式
推荐模型如下:
- 创建你自己的 ASP.NET Core 应用。
- 引用
Asgard.Yggdrasil.AspNetCore。 - 通过
YggdrasilHost启动宿主。 - 把业务模块组织成一个或多个内建插件。
这种方式既保留了应用自身对入口和中间件的控制权,也能让 Asgard 统一管理服务注册、插件生命周期和宿主能力。
快速开始
Program.cs
using Asgard.Yggdrasil.AspNetCore;
using Asgard.Abstractions.AspNetCore.Extensions;
using Microsoft.AspNetCore.Builder;
var builder = YggdrasilHost.CreateBuilder("config/app.yaml")
.UseBuiltInPlugin<MyBusinessPlugin>()
.ConfigureMiddleware(app =>
{
app.UseAsgardExceptionHandler()
.UseHttpsRedirection();
})
.AfterHostBuild(_ =>
{
Console.WriteLine("[OK] Asgard Yggdrasil host started");
});
var app = builder.Build();
await app.RunAsync();
如果项目里看不到 YggdrasilHost,请优先确认:
- 项目已经引用
Asgard.Yggdrasil.AspNetCore Program.cs中包含using Asgard.Yggdrasil.AspNetCore;
内建插件
using Asgard.Core.Plugin;
using Asgard.Abstractions.Plugin;
public sealed class MyBusinessPlugin : PluginBase
{
public override string Id => "member-center";
public override string Name => "Member Center";
public override Version Version => new(1, 0, 0);
protected override Task OnConfigureServicesAsync(
IPluginServiceConfigurationContext context,
CancellationToken cancellationToken)
{
context.Services.AddScoped<IMemberService, MemberService>();
return Task.CompletedTask;
}
protected override Task OnConfigureMiddlewareAsync(
IPluginMiddlewareConfigurationContext context,
CancellationToken cancellationToken)
{
context.App.MapControllers();
return Task.CompletedTask;
}
}
配置说明
当前宿主默认读取类似 config/app.yaml 的配置文件,并优先使用 host.* 节点管理宿主级能力。
最小示例:
host:
application:
name: "MyApp"
version: "1.0.0"
environment: "Development"
staticFiles:
enabled: true
webRootPath: "wwwroot"
requestPath: ""
auth:
enabled: false
healthCheck:
enabled: true
rateLimiting:
enabled: false
host.staticFiles、host.auth、host.swagger、host.healthCheck 和 host.rateLimiting 是推荐优先使用的宿主配置入口。
运行时插件扫描
目录扫描式插件发现仍然可用,但更适合作为可选扩展机制,而不是普通应用的默认接入方式:
plugin:
enabled: true
scanDirectories:
- path: "plugins"
enabled: true
recursive: false
entryPointPattern: "*.Plugin.dll"
这更适用于部署期扩展、热插拔场景和私有插件市场。
相关包
Asgard.AspNetCore.CoreAsgard.CoreAsgard.AbstractionsAsgard.Abstractions.AspNetCoreAsgard.PluginSdk
相关资源
- 主仓库:BenLampson/Asgard
- 文档目录:src/doc
- Asgard Skills 仓库:BenLampson/Asgard.Skills
Asgard.Skills 是 Asgard 官方 AI 技能仓库,包含宿主项目、插件开发、API 开发等配套技能定义。若你会使用 AI 助手参与项目搭建,建议直接配套使用。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Asgard.AspNetCore.Core (>= 4.1.1)
- Asgard.Core (>= 4.1.1)
- Asgard.TsGen (>= 4.1.1)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 10.0.5)
- Microsoft.AspNetCore.DataProtection.StackExchangeRedis (>= 10.0.5)
- Serilog.Extensions.Logging (>= 10.0.0)
- Swashbuckle.AspNetCore (>= 10.1.7)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Asgard.Yggdrasil.AspNetCore:
| Package | Downloads |
|---|---|
|
Asgard.PluginSdk
Common plugin development dependencies and convenience APIs for Asgard plugins. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.1.1 | 3 | 4/15/2026 |
| 4.1.0 | 36 | 4/14/2026 |
| 4.0.5 | 81 | 4/11/2026 |
| 4.0.4 | 86 | 4/10/2026 |
| 4.0.3 | 86 | 4/9/2026 |
| 4.0.2 | 91 | 4/8/2026 |
| 4.0.1 | 101 | 4/3/2026 |
| 4.0.0 | 103 | 4/1/2026 |
| 4.0.0-preview.7 | 50 | 3/31/2026 |
| 4.0.0-preview.6 | 49 | 3/30/2026 |
| 4.0.0-preview.5 | 137 | 3/28/2026 |
| 4.0.0-preview.4 | 45 | 3/27/2026 |