# SqlProjectBuilderExtensions Methods

- Package: [CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects](/reference/api/csharp/communitytoolkit.aspire.hosting.sqldatabaseprojects.md)
- Type: [SqlProjectBuilderExtensions](/reference/api/csharp/communitytoolkit.aspire.hosting.sqldatabaseprojects/sqlprojectbuilderextensions.md)
- Kind: `Methods`
- Members: `15`

Provides extension methods for adding SQL Server Database Projects to the application.

## AddSqlPackage(IDistributedApplicationBuilder, string)

- Name: `AddSqlPackage(IDistributedApplicationBuilder, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlPackageResource<TPackage>>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs#L77-L89)

Adds a SQL Server Database Project resource to the application based on a referenced NuGet package.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlPackageResource<TPackage>> AddSqlPackage<TPackage>(
        this IDistributedApplicationBuilder builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  An `Hosting.IDistributedApplicationBuilder` instance to add the SQL Server Database project to.
- `name` (`string`)
  Name of the resource.

## Returns

`IResourceBuilder<SqlPackageResource<TPackage>>` -- Am `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## Remarks

This method is not available in polyglot app hosts.

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.

## AddSqlProject(IDistributedApplicationBuilder, string)

- Name: `AddSqlProject(IDistributedApplicationBuilder, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlProjectResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Adds a SQL Server Database Project resource to the application based on a referenced MSBuild.Sdk.SqlProj project.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlProjectResource> AddSqlProject<TProject>(
        this IDistributedApplicationBuilder builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  An `Hosting.IDistributedApplicationBuilder` instance to add the SQL Server Database project to.
- `name` (`string`)
  Name of the resource.

## Returns

`IResourceBuilder<SqlProjectResource>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## Remarks

This overload is not available in polyglot app hosts. Use [SqlProjectBuilderExtensions.AddSqlProject(IDistributedApplicationBuilder, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.sqldatabaseprojects/sqlprojectbuilderextensions/methods.md#addsqlproject-idistributedapplicationbuilder-string) and then call `WithDacpac` instead.

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.

## AddSqlProject(IDistributedApplicationBuilder, string)

- Name: `AddSqlProject(IDistributedApplicationBuilder, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlProjectResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Adds a SQL Server Database Project resource to the application.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlProjectResource> AddSqlProject(
        this IDistributedApplicationBuilder builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  An `Hosting.IDistributedApplicationBuilder` instance to add the SQL Server Database project to.
- `name` (`string`)
  Name of the resource.

## Returns

`IResourceBuilder<SqlProjectResource>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithConfigureDacDeployOptions(IResourceBuilder<SqlProjectResource>, Action<DacDeployOptions>)

- Name: `WithConfigureDacDeployOptions(IResourceBuilder<SqlProjectResource>, Action<DacDeployOptions>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlProjectResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Adds a delegate annotation for configuring dacpac deployment options to the [SqlProjectResource](/reference/api/csharp/communitytoolkit.aspire.hosting.sqldatabaseprojects/sqlprojectresource.md).

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlProjectResource> WithConfigureDacDeployOptions(
        this IResourceBuilder<SqlProjectResource> builder,
        Action<DacDeployOptions> configureDeploymentOptions)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlProjectResource>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project.
- `configureDeploymentOptions` (`Action<DacDeployOptions>`)
  The delegate for configuring dacpac deployment options

## Returns

`IResourceBuilder<SqlProjectResource>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## Remarks

This method is not available in polyglot app hosts. Use [SqlProjectBuilderExtensions.WithDacDeployOptions(IResourceBuilder<SqlProjectResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.sqldatabaseprojects/sqlprojectbuilderextensions/methods.md#withdacdeployoptions-iresourcebuilder-sqlprojectresource-string) instead.

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.

## WithConfigureDacDeployOptions(IResourceBuilder<SqlPackageResource<TPackage>>, Action<DacDeployOptions>)

- Name: `WithConfigureDacDeployOptions(IResourceBuilder<SqlPackageResource<TPackage>>, Action<DacDeployOptions>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlPackageResource<TPackage>>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Adds a delegate annotation for configuring dacpac deployment options to the [SqlProjectResource](/reference/api/csharp/communitytoolkit.aspire.hosting.sqldatabaseprojects/sqlprojectresource.md).

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlPackageResource<TPackage>> WithConfigureDacDeployOptions<TPackage>(
        this IResourceBuilder<SqlPackageResource<TPackage>> builder,
        Action<DacDeployOptions> configureDeploymentOptions)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlPackageResource<TPackage>>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project.
- `configureDeploymentOptions` (`Action<DacDeployOptions>`)
  The delegate for configuring dacpac deployment options

## Returns

`IResourceBuilder<SqlPackageResource<TPackage>>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## Remarks

This method is not available in polyglot app hosts.

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.

## WithDacDeployOptions(IResourceBuilder<SqlProjectResource>, string)

- Name: `WithDacDeployOptions(IResourceBuilder<SqlProjectResource>, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlProjectResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Adds a path to a publish profile for configuring dacpac deployment options to the [SqlProjectResource](/reference/api/csharp/communitytoolkit.aspire.hosting.sqldatabaseprojects/sqlprojectresource.md).

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlProjectResource> WithDacDeployOptions(
        this IResourceBuilder<SqlProjectResource> builder,
        string optionsPath)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlProjectResource>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project.
- `optionsPath` (`string`)
  Path to the publish profile xml file

## Returns

`IResourceBuilder<SqlProjectResource>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithDacDeployOptions(IResourceBuilder<SqlPackageResource<TPackage>>, string)

- Name: `WithDacDeployOptions(IResourceBuilder<SqlPackageResource<TPackage>>, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlPackageResource<TPackage>>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Adds a path to a publish profile for configuring dacpac deployment options to the [SqlProjectResource](/reference/api/csharp/communitytoolkit.aspire.hosting.sqldatabaseprojects/sqlprojectresource.md).

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlPackageResource<TPackage>> WithDacDeployOptions<TPackage>(
        this IResourceBuilder<SqlPackageResource<TPackage>> builder,
        string optionsPath)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlPackageResource<TPackage>>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project.
- `optionsPath` (`string`)
  Path to the publish profile xml file

## Returns

`IResourceBuilder<SqlPackageResource<TPackage>>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## Remarks

This overload is not available in polyglot app hosts.

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.

## WithDacpac(IResourceBuilder<SqlProjectResource>, string)

- Name: `WithDacpac(IResourceBuilder<SqlProjectResource>, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlProjectResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Specifies the path to the .dacpac file.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlProjectResource> WithDacpac(
        this IResourceBuilder<SqlProjectResource> builder,
        string dacpacPath)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlProjectResource>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project.
- `dacpacPath` (`string`)
  Path to the .dacpac file.

## Returns

`IResourceBuilder<SqlProjectResource>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithDacpac(IResourceBuilder<SqlPackageResource<TPackage>>, string)

- Name: `WithDacpac(IResourceBuilder<SqlPackageResource<TPackage>>, string)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlPackageResource<TPackage>>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Specifies the path to the .dacpac file.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlPackageResource<TPackage>> WithDacpac<TPackage>(
        this IResourceBuilder<SqlPackageResource<TPackage>> builder,
        string dacpacPath)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlPackageResource<TPackage>>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project.
- `dacpacPath` (`string`)
  Path to the .dacpac file.

## Returns

`IResourceBuilder<SqlPackageResource<TPackage>>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## Remarks

This overload is not available in polyglot app hosts.

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.

## WithReference(IResourceBuilder<SqlProjectResource>, IResourceBuilder<SqlServerDatabaseResource>)

- Name: `WithReference(IResourceBuilder<SqlProjectResource>, IResourceBuilder<SqlServerDatabaseResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlProjectResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Publishes the SQL Server Database project to the target `ApplicationModel.SqlServerDatabaseResource`.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlProjectResource> WithReference(
        this IResourceBuilder<SqlProjectResource> builder,
        IResourceBuilder<SqlServerDatabaseResource> target)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlProjectResource>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project to publish.
- `target` (`IResourceBuilder<SqlServerDatabaseResource>`)
  An `ApplicationModel.IResourceBuilder`1` representing the target `ApplicationModel.SqlServerDatabaseResource` to publish the SQL Server Database project to.

## Returns

`IResourceBuilder<SqlProjectResource>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithReference(IResourceBuilder<SqlProjectResource>, IResourceBuilder<IResourceWithConnectionString>)

- Name: `WithReference(IResourceBuilder<SqlProjectResource>, IResourceBuilder<IResourceWithConnectionString>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlProjectResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Publishes the SQL Server Database project to the target `ApplicationModel.IResourceWithConnectionString`.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlProjectResource> WithReference(
        this IResourceBuilder<SqlProjectResource> builder,
        IResourceBuilder<IResourceWithConnectionString> target)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlProjectResource>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project to publish.
- `target` (`IResourceBuilder<IResourceWithConnectionString>`)
  An `ApplicationModel.IResourceBuilder`1` representing the target `ApplicationModel.IResourceWithConnectionString` to publish the SQL Server Database project to.

## Returns

`IResourceBuilder<SqlProjectResource>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithReference(IResourceBuilder<SqlPackageResource<TPackage>>, IResourceBuilder<SqlServerDatabaseResource>)

- Name: `WithReference(IResourceBuilder<SqlPackageResource<TPackage>>, IResourceBuilder<SqlServerDatabaseResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlPackageResource<TPackage>>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Publishes the SQL Server Database project to the target `ApplicationModel.SqlServerDatabaseResource`.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlPackageResource<TPackage>> WithReference<TPackage>(
        this IResourceBuilder<SqlPackageResource<TPackage>> builder,
        IResourceBuilder<SqlServerDatabaseResource> target)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlPackageResource<TPackage>>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project to publish.
- `target` (`IResourceBuilder<SqlServerDatabaseResource>`)
  An `ApplicationModel.IResourceBuilder`1` representing the target `ApplicationModel.SqlServerDatabaseResource` to publish the SQL Server Database project to.

## Returns

`IResourceBuilder<SqlPackageResource<TPackage>>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## Remarks

This overload is not available in polyglot app hosts.

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.

## WithReference(IResourceBuilder<SqlPackageResource<TPackage>>, IResourceBuilder<IResourceWithConnectionString>)

- Name: `WithReference(IResourceBuilder<SqlPackageResource<TPackage>>, IResourceBuilder<IResourceWithConnectionString>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlPackageResource<TPackage>>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Publishes the SQL Server Database project to the target `ApplicationModel.IResourceWithConnectionString`.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlPackageResource<TPackage>> WithReference<TPackage>(
        this IResourceBuilder<SqlPackageResource<TPackage>> builder,
        IResourceBuilder<IResourceWithConnectionString> target)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlPackageResource<TPackage>>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project to publish.
- `target` (`IResourceBuilder<IResourceWithConnectionString>`)
  An `ApplicationModel.IResourceBuilder`1` representing the target `ApplicationModel.IResourceWithConnectionString` to publish the SQL Server Database project to.

## Returns

`IResourceBuilder<SqlPackageResource<TPackage>>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## Remarks

This overload is not available in polyglot app hosts.

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.

## WithSkipWhenDeployed(IResourceBuilder<SqlProjectResource>)

- Name: `WithSkipWhenDeployed(IResourceBuilder<SqlProjectResource>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlProjectResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Specifies that .dacpac deployment should be skipped if metadata in the target database indicates that the .dacpac has already been deployed in its current state.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlProjectResource> WithSkipWhenDeployed(
        this IResourceBuilder<SqlProjectResource> builder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlProjectResource>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project.

## Returns

`IResourceBuilder<SqlProjectResource>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithSkipWhenDeployed(IResourceBuilder<SqlPackageResource<TPackage>>)

- Name: `WithSkipWhenDeployed(IResourceBuilder<SqlPackageResource<TPackage>>)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<SqlPackageResource<TPackage>>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects/SqlProjectBuilderExtensions.cs)

Specifies that .dacpac deployment should be skipped if metadata in the target database indicates that the .dacpac has already been deployed in its current state.

```csharp
public static class SqlProjectBuilderExtensions
{
    public static IResourceBuilder<SqlPackageResource<TPackage>> WithSkipWhenDeployed<TPackage>(
        this IResourceBuilder<SqlPackageResource<TPackage>> builder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<SqlPackageResource<TPackage>>`)
  An `ApplicationModel.IResourceBuilder`1` representing the SQL Server Database project.

## Returns

`IResourceBuilder<SqlPackageResource<TPackage>>` -- An `ApplicationModel.IResourceBuilder`1` that can be used to further customize the resource.

## Remarks

This overload is not available in polyglot app hosts.

## ATS metadata

### Ignored by ATS

- Excluded from automatic Polyglot export.
