.NET .NET Aspire SDK

.NET .NET Aspire SDK 适用于 *.AppHost 项目,用作 .NET.NET Aspire 协调器。 这些项目使用 <IsAspireHost>true</IsAspireHost> 属性指定,并在项目文件中指定 Aspire.AppHost.Sdk。 SDK 提供了一组功能,可简化 .NET.NET Aspire 应用的开发。

概述

📦 Aspire,AppHost.Sdk 是用于生成 .NET.NET Aspire 应用的附加的 MSBuild 项目 SDKAspire.AppHost.Sdk 使用顶级 Project/Sdk定义:

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

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

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

前面的示例项目将顶级 SDK 定义为 Microsoft.NET.Sdk,将 Aspire.AppHost.Sdk 定义为累加 SDK。 IsAspireHost 属性设置为 true,指示此项目是 .NET.NET Aspire 应用主机。 该项目还引用 Aspire.Hosting.AppHost 包,该包带来了许多与 Aspire相关的依赖项。

SDK 功能

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

项目参考

.NET.NET Aspire 应用主机 项目中,每个 ProjectReference 均不被视为标准项目引用。 相反,它们使 应用主机 能够作为其编排的一部分执行这些项目。 每个项目引用都会触发一个生成器,以创建一个 class,该 class 将项目表示为 IProjectMetadata。 此元数据用于填充生成的 Projects 命名空间中的命名项目。 调用 Aspire.Hosting.ProjectResourceBuilderExtensions.AddProject API 时,Projects 命名空间用于引用项目,将生成的类作为泛型类型参数传递。

提示

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

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

编排器依赖项

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

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