다음을 통해 공유


명령줄에서 데이터베이스 프로젝트 빌드

SQL Database 프로젝트 확장은 데이터베이스 프로젝트를 빌드하기 위한 그래픽 사용자 인터페이스를 제공하지만 Windows, macOS 및 Linux 환경에서도 명령줄 빌드 환경을 사용할 수 있습니다. 명령줄에서 프로젝트를 빌드하는 단계는 SDK 스타일 SQL 프로젝트와 이전 비SDK 스타일 SQL 프로젝트 형식 간에 다릅니다. 이 문서에서는 두 SQL 프로젝트 형식에 대한 명령줄의 SQL 프로젝트에서 dacpac를 빌드하는 데 필요한 필수 구성 요소 및 구문을 간략하게 설명합니다.

SDK 스타일 SQL 프로젝트(미리 보기)

SDK 스타일 SQL 프로젝트에서 Microsoft.Build.Sql을 사용하는 것은 명령줄에서 SQL 프로젝트를 사용하기 위한 기본 설정 방법입니다.

Windows, macOS 또는 Linux의 명령줄에서 SDK 스타일 SQL 프로젝트를 빌드하려면 다음 명령을 사용합니다.

dotnet build /p:NetCoreBuild=true

참고 항목

SDK 스타일 SQL 프로젝트는 현재 미리 보기 상태입니다.

비SDK 스타일 SQL 프로젝트

다음 섹션에서는 Windows, macOS 및 Linux의 명령줄에서 SDK 스타일이 아닌 SQL 프로젝트로 작업하는 작업에 대해 설명합니다.

필수 조건

  1. SQL Database 프로젝트 확장을 설치하고 구성합니다.

  2. 다음 .NET Core dll 및 대상 파일 Microsoft.Data.Tools.Schema.SqlTasks.targets 은 SQL Database 프로젝트용 Azure Data Studio 확장에서 지원하는 모든 플랫폼의 명령줄에서 SQL Database 프로젝트를 빌드하는 데 필요합니다. 이러한 파일은 Azure Data Studio 인터페이스에서 완료되는 첫 번째 빌드 중에 확장에서 만들어지며 BuildDirectory의 확장 폴더에 배치됩니다. 예를 들어 Linux에서는 이러한 파일이 ~\.azuredatastudio\extensions\microsoft.sql-database-projects-x.x.x\BuildDirectory\에 배치됩니다. 이러한 11개 파일을 액세스 가능한 새 폴더에 복사하거나 해당 위치를 기록해 둡다. 이 문서에서는 해당 위치가 DotNet Core build folder입니다.

    • Microsoft.Data.SqlClient.dll
    • Microsoft.Data.Tools.Schema.Sql.dll
    • Microsoft.Data.Tools.Schema.SqlTasks.targets
    • Microsoft.Data.Tools.Schema.Tasks.Sql.dll
    • Microsoft.Data.Tools.Utilities.dll
    • Microsoft.SqlServer.Dac.dll
    • Microsoft.SqlServer.Dac.Extensions.dll
    • Microsoft.SqlServer.TransactSql.ScriptDom.dll
    • Microsoft.SqlServer.Types.dll
    • System.ComponentModel.Composition.dll
    • System.IO.Packaging.dll
  3. Azure Data Studio에서 프로젝트를 만든 경우 명령줄에서 프로젝트 빌드로 건너뜁니다. 프로젝트가 SSDT(SQL Server Data Tools)에서 만들어진 경우 Azure Data Studio SQL Database 프로젝트 확장에서 프로젝트를 엽니다. Azure Data Studio에서 프로젝트를 열면 아래 설명된 대로 세 가지 편집을 통해 sqlproj 파일을 자동으로 업데이트합니다.

    1. 가져오기 조건
    <Import Condition="'$(NetCoreBuild)' == 'true'" Project="$(NETCoreTargetsPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets"/> 
    <Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
    <Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
    
    1. 패키지 참조
    <ItemGroup>
        <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
    1. SSDT(SQL Server Data Tools) 및 Azure Data Studio에서 이중 편집을 지원하는 데 필요한 대상 정리
    <Target Name="AfterClean">
        <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/>
    </Target>
    

명령줄에서 프로젝트 빌드

전체 .NET 폴더에서 다음 명령을 사용합니다.

dotnet build "<sqlproj file path>" /p:NetCoreBuild=true /p:NETCoreTargetsPath="<DotNet Core build folder>"

예를 들어 Linux의 경우 /usr/share/dotnet에서 다음 명령을 사용합니다.

dotnet build "/home/myuser/Documents/DatabaseProject1/DatabaseProject1.sqlproj" /p:NetCoreBuild=true /p:NETCoreTargetsPath="/home/myuser/.azuredatastudio/extensions/microsoft.sql-database-projects-x.x.x/BuildDirectory"  

다음 단계