# MauiProjectExtensions Methods

- Package: [Aspire.Hosting.Maui](/reference/api/csharp/aspire.hosting.maui.md)
- Type: [MauiProjectExtensions](/reference/api/csharp/aspire.hosting.maui/mauiprojectextensions.md)
- Kind: `Methods`
- Members: `1`

Provides extension methods for adding .NET MAUI projects to the application model.

## AddMauiProject(IDistributedApplicationBuilder, string, string)

- Name: `AddMauiProject(IDistributedApplicationBuilder, string, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<MauiProjectResource>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/becb48e2d61099e35ae336d527d3875e928d6594/src/Aspire.Hosting.Maui/MauiProjectResourceExtensions.cs#L52-L64)

Adds a .NET MAUI project to the application model. This resource can be used to create platform-specific resources.

```csharp
public static class MauiProjectExtensions
{
    public static IResourceBuilder<MauiProjectResource> AddMauiProject(
        this IDistributedApplicationBuilder builder,
        string name,
        string projectPath)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The builder for the distributed application.
- `name` (`string`)
  The name of the resource.
- `projectPath` (`string`)
  The path to the .NET MAUI project file (.csproj). This can be a relative or absolute path.

## Returns

`IResourceBuilder<MauiProjectResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1`.

## Remarks

This method creates a parent MAUI project resource that serves as a container for platform-specific resources such as Windows, Android, iOS, and macOS. The actual platform instances are added using extension methods like `AddWindowsDevice`.

The MAUI project is not built immediately when the AppHost starts. Instead, builds are deferred until a platform-specific resource is started, allowing faster AppHost startup and enabling incremental builds during development.

## Examples

Add a MAUI project with Windows support:

```csharp
var builder = DistributedApplication.CreateBuilder(args);

var weatherApi = builder.AddProject<Projects.WeatherApi>("api");

var maui = builder.AddMauiProject("mauiapp", "../MyMauiApp/MyMauiApp.csproj");
var windowsDevice = maui.AddWindowsDevice()
    .WithReference(weatherApi);

builder.Build().Run();
```

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.
