Bagikan melalui


Membangun proyek database dari baris perintah

Meskipun ekstensi Proyek SQL Database menyediakan antarmuka pengguna grafis untuk membangun proyek database, pengalaman build baris perintah juga tersedia untuk lingkungan Windows, macOS, dan Linux. Langkah-langkah untuk membangun proyek dari baris perintah berbeda antara proyek SQL gaya SDK dan format proyek SQL gaya non-SDK sebelumnya. Artikel ini menguraikan prasyarat dan sintaksis yang diperlukan untuk membangun dacpac dari proyek SQL di baris perintah untuk kedua jenis proyek SQL.

Proyek SQL bergaya SDK (pratinjau)

Menggunakan Microsoft.Build.Sql dengan proyek SQL bergaya SDK adalah metode yang disukai untuk bekerja dengan proyek SQL dari baris perintah.

Untuk membangun proyek SQL gaya SDK dari baris perintah di Windows, macOS, atau Linux, gunakan perintah berikut:

dotnet build /p:NetCoreBuild=true

Catatan

Proyek SQL bergaya SDK saat ini dalam pratinjau.

Proyek SQL gaya non-SDK

Bagian berikut menjelaskan cara kerja untuk bekerja dengan proyek SQL gaya non-SDK dari baris perintah di Windows, macOS, dan Linux.

Prasyarat

  1. Menginstal dan mengonfigurasi ekstensi Proyek SQL Database.

  2. Dll .NET Core berikut dan file Microsoft.Data.Tools.Schema.SqlTasks.targets target diperlukan untuk membangun proyek database SQL dari baris perintah dari semua platform yang didukung oleh ekstensi Azure Data Studio untuk Proyek Database SQL. File-file ini dibuat oleh ekstensi selama build pertama selesai di antarmuka Azure Data Studio dan ditempatkan di folder ekstensi di bawah BuildDirectory. Misalnya, di Linux, file-file ini ditempatkan di ~\.azuredatastudio\extensions\microsoft.sql-database-projects-x.x.x\BuildDirectory\. Salin 11 file ini ke folder baru dan dapat diakses atau catat lokasinya. Lokasi ini disebut sebagai DotNet Core build folder dalam dokumen ini.

    • 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. Jika proyek dibuat di Azure Data Studio - lewati ke depan untuk Membangun proyek dari baris perintah. Jika proyek dibuat di SQL Server Data Tools (SSDT), buka proyek di ekstensi proyek Azure Data Studio SQL Database. Membuka proyek di Azure Data Studio secara otomatis memperbarui sqlproj file dengan tiga pengeditan, dicatat untuk informasi Anda:

    1. Kondisi impor
    <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. Referensi paket
    <ItemGroup>
        <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
    1. Bersihkan target, diperlukan untuk mendukung pengeditan ganda di SQL Server Data Tools (SSDT) dan Azure Data Studio
    <Target Name="AfterClean">
        <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/>
    </Target>
    

Membangun proyek dari baris perintah

Dari folder .NET lengkap, gunakan perintah berikut:

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

Misalnya, dari /usr/share/dotnet di Linux:

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"  

Langkah berikutnya