Aspire SDK

SDK Aspire 适用于 *.AppHost 项目,作为 Aspire 编排程序。 这些项目由项目文件中的 Aspire.AppHost.Sdk 用法指定。 SDK 提供了一组简化应用开发 Aspire 的功能。

概述

.AppHost.Sdk 是一个用于构建应用的附加 MSBuild 项目 SDKAspire.AppHost.Sdk 使用顶级 Project/Sdk定义:

<Project Sdk="Microsoft.NET.Sdk">

    <Sdk Name="Aspire.AppHost.Sdk" Version="9.5.2" />
    
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net9.0</TargetFramework>
        <!-- Omitted for brevity -->
    </PropertyGroup>
    
    <ItemGroup>
        <PackageReference Include="Aspire.Hosting.AppHost" Version="9.5.2" />
    </ItemGroup>

    <!-- Omitted for brevity -->
</Project>

前面的示例项目将顶级 SDK 定义为 Microsoft.NET.Sdk,将 Aspire.AppHost.Sdk 定义为累加 SDK。 该项目还引用 Aspire.Hosting.AppHost 包,该包带来了许多与 Aspire相关的依赖项。

SDK 功能

Aspire SDK 提供了几个关键功能。

项目参考

Aspire 项目中的每一个都不被视为标准项目引用。 相反,它们允许 AppHost 在其业务流程中执行这些项目。 每个项目引用都会触发一个生成器,以创建一个 class,该 class 将项目表示为 。 此元数据用于填充生成的 Projects 命名空间中的命名项目。 调用 Aspire.Hosting.ProjectResourceBuilderExtensions.AddProject API 时,Projects 命名空间用于引用项目,将生成的类作为泛型类型参数传递。

Tip

如果需要以传统方式在 AppHost 中引用项目,请将IsAspireProjectResourceProjectReference元素上的属性设置为false,如以下示例所示:

<ProjectReference Include="..\MyProject\MyProject.csproj" IsAspireProjectResource="false" />

否则,默认情况下,该 ProjectReference 资源被视为 Aspire 项目资源。

编排器依赖项

Aspire SDK 动态添加对Aspire仪表板和其他 AppHost 依赖项的引用,例如开发人员控制平面 (DCP) 包。 这些依赖项特定于 AppHost 构建的平台。

当 AppHost 项目运行时,业务流程协调程序依赖这些依赖项向 AppHost 提供必要的功能。 有关详细信息,请参阅 Aspire 业务流程概述