Skip to main content
Published
Apr 8, 2025
1y ago
Total Downloads
376.6K
376,564

Install

dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects --version 9.3.1-beta.259

No framework information available.

README

CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects library

This package provides .NET Aspire integration for SQL Server Database Projects. It allows you to publish SQL Database Projects as part of your .NET Aspire AppHost projects. It currently works with both MSBuild.Sdk.SqlProj and Microsoft.Build.Sql (aka .sqlprojx) based projects.

Usage

To use this package, install it into your .NET Aspire AppHost project:

dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects

Next, add a reference to the MSBuild.Sdk.SqlProj or Microsoft.Build.Sql project you want to publish in your .NET Aspire AppHost project:

dotnet add reference ../MySqlProj/MySqlProj.csproj

Note: Adding this reference will currently result in warning ASPIRE004. This is a known issue and will be resolved in a future release.

Finally add the project as a resource to your .NET Aspire AppHost:

var builder = DistributedApplication.CreateBuilder(args);

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");

builder.AddSqlProject<Projects.MySqlProj>("mysqlproj")
       .WithReference(sql);

builder.Build().Run();

Now when you run your .NET Aspire AppHost project you will see the SQL Database Project being published to the specified SQL Server.

Local .dacpac file support

If you are sourcing your .dacpac file from somewhere other than a project reference, you can also specify the path to the .dacpac file directly:

var builder = DistributedApplication.CreateBuilder(args);

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");

builder.AddSqlProject("mysqlproj")
       .WithDacpac("path/to/mysqlproj.dacpac")
       .WithReference(sql);

builder.Build().Run();

Support for existing SQL Server

Instead of using the AddSqlServer method to use a SQL Server container, you can specify a connection string to an existing server:

var builder = DistributedApplication.CreateBuilder(args);

// Get an existing connection string from the configuration
var connection = builder.AddConnectionString("Aspire");

builder.AddSqlProject<Projects.SdkProject>("mysqlproj")
       .WithReference(connection);

builder.Build().Run();

Deployment options support

Define options that affect the behavior of package deployment.

var builder = DistributedApplication.CreateBuilder(args);

var sql = builder.AddSqlServer("sql")
                 .AddDatabase("test");

builder.AddSqlProject("mysqlproj")
       .WithConfigureDacDeployOptions(options => options.IncludeCompositeObjects = true)
       .WithReference(sql);

builder.Build().Run();

Changes from Previous Version

No structural changes between v9.3.1-beta.258 and v9.3.1-beta.259.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

This version is marked prerelease. Validate its API and upgrade path before production use.No SPDX license expression is published. Review the license text and your organisation's policy before redistribution.No target framework metadata is available. Confirm compatibility in a representative project before standardising on this package.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.