다음을 통해 공유


SQL Database 프로젝트 호스팅 통합 .NET.NET Aspire

포함:호스팅 통합 통합 Client

메모

이 통합은 .NET.NET Aspire 커뮤니티 도구 키트 일부이며 .NET.NET Aspire 팀에서 공식적으로 지원하지 않습니다.

이 문서에서는 호스팅된 통합 기능을 갖춘 .NET Aspire SQL Database Projects를 사용하여 데이터베이스 스키마를 SQL Server 데이터베이스에 게시하는 방법을 알아봅니다.

필수 구성 요소

이 통합을 위해서는 MSBuild.Sdk.SqlProj 또는 Microsoft.Build.Sql기반으로 하는 SQL Database 프로젝트가 필요합니다.

호스팅 통합

통합을 시작하려면 .NET.NET Aspire SQL Database 프로젝트 호스팅과 함께 앱 호스트 프로젝트에 📦 CommunityToolkit를 설치하고,Aspire.Hosting.SqlDatabaseProjects NuGet 패키지를 추가하세요.

dotnet add package CommunityToolkit.Aspire.Hosting.SqlDatabaseProjects

자세한 내용은 dotnet add package 또는 .NET 응용 프로그램에서 패키지 종속성을 관리하기를 참조하세요.

예제 사용

📦 MSBuild.Sdk.SqlProj 또는 📦 Microsoft.Build.Sql 프로젝트에 대한 참조를 추가하여 .NET.NET Aspire 앱 호스트 프로젝트에서 게시하려는 프로젝트를 설정하세요.

dotnet add reference ../MySqlProj/MySqlProj.csproj

메모

이 참조를 추가하면 참조가 구문 분석되는 방식 때문에 현재 프로젝트에 경고 ASPIRE004가 발생합니다. .NET .NET Aspire 팀은 이를 인식하고 있으며 보다 깨끗한 솔루션을 위해 노력하고 있습니다.

프로젝트를 .NET.NET Aspire AppHost에 리소스로 추가합니다.

var builder = DistributedApplication.CreateBuilder(args);

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

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

이제 .NET Aspire 앱 호스트 프로젝트를 실행하면 SQL Database 프로젝트가 지정된 SQL Server에 게시되는 모습을 볼 수 있습니다.

로컬 .dacpac 파일 지원

프로젝트 참조가 아닌 다른 위치에서 .dacpac 파일을 소싱하는 경우 .dacpac 파일의 경로를 직접 지정할 수도 있습니다.

var builder = DistributedApplication.CreateBuilder(args);

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

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

배포 옵션 지원

패키지 배포의 동작에 영향을 주는 옵션을 정의하려면 WithConfigureDacDeployOptions API를 호출합니다.

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();

앞의 코드는 다음과 같습니다.

  • sql SQL server 리소스를 추가하고 test 데이터베이스 리소스를 추가합니다.
  • mysqlproj SQL 프로젝트 리소스를 추가하고, 그 다음 DacDeployOptions을 구성합니다.
  • SQL 프로젝트 리소스는 데이터베이스 리소스에 따라 달라집니다.

재배포 지원

앱 호스트가 실행되는 동안 SQL Database 프로젝트를 변경하는 경우 .NET.NET Aspire 대시보드에서 Redeploy 사용자 지정 작업을 사용하여 앱 호스트를 다시 시작하지 않고도 업데이트를 다시 배포할 수 있습니다.

참고 항목