DistributedApplicationBuilder Properties
DistributedApplication. public Assembly? AppHostAssembly { get; }public string AppHostDirectory { get; }public string AppHostPath { get; }public ConfigurationManager Configuration { get; }Remarks
public IHostEnvironment Environment { get; }public IDistributedApplicationEventing Eventing { get; }public DistributedApplicationExecutionContext ExecutionContext { get; }Remarks
The IDistributedApplicationBuilder.ExecutionContext property provides access key information about the context in which the distributed application is running. The most important properties that the DistributedApplicationExecutionContext provides is the DistributedApplicationExecutionContext.IsPublishMode and DistributedApplicationExecutionContext.IsRunMode properties. Developers building .NET Aspire based applications may whish to change the application model depending on whether they are running locally, or whether they are publishing to the cloud.
An example of using the DistributedApplicationExecutionContext.IsRunMode property on the IDistributedApplicationBuilder via the IResourceBuilder`1.ApplicationBuilder. In this case an extension method is used to generate a stable node name for RabbitMQ for local development runs.
private static IResourceBuilder<RabbitMQServerResource> RunWithStableNodeName( this IResourceBuilder<RabbitMQServerResource> builder){ if (builder.ApplicationBuilder.ExecutionContext.IsRunMode) { builder.WithEnvironment(context => { // Set a stable node name so queue storage is consistent between sessions var nodeName = $"{builder.Resource.Name}@localhost"; context.EnvironmentVariables["RABBITMQ_NODENAME"] = nodeName; }); }
return builder;}public IFileSystemService FileSystemService { get; }Remarks
The IDistributedApplicationBuilder.FileSystemService provides a centralized way to manage temporary files and directories used by Aspire, enabling testability and consistent temp file management.
Resources and infrastructure code should use this service instead of static methods like Path.GetTempPath or Directory.CreateTempSubdirectory to ensure consistent directory management across the application.
public IDistributedApplicationPipeline Pipeline { get; }Remarks
public IResourceCollection Resources { get; }Remarks
public IServiceCollection Services { get; }public IUserSecretsManager UserSecretsManager { get; }Remarks
The IDistributedApplicationBuilder.UserSecretsManager provides a centralized way to manage user secrets used by Aspire, enabling testability and consistent secret management.