Condividi tramite


Compilare un progetto di database dalla riga di comando

Anche se l'estensione progetti di database SQL fornisce un'interfaccia utente grafica per compilare un progetto di database, è disponibile anche un'esperienza di compilazione da riga di comando per ambienti Windows, macOS e Linux. I passaggi per compilare un progetto dalla riga di comando per i progetti SQL in stile SDK sono diversi rispetto al formato di progetto SQL non in stile SDK precedente. Questo articolo illustra la sintassi e i prerequisiti necessari per compilare un dacpac da un progetto SQL nella riga di comando per entrambi i tipi di progetto SQL.

Progetti SQL in stile SDK (anteprima)

L'uso di Microsoft.Build.Sql con progetti SQL in stile SDK è il metodo preferito per la gestione dei progetti SQL dalla riga di comando.

Per creare un progetto SQL in stile SDK dalla riga di comando in Windows, macOS o Linux, usare il comando seguente:

dotnet build /p:NetCoreBuild=true

Nota

I progetti SQL in stile SDK sono attualmente in anteprima.

Progetti SQL non in stile SDK

La sezione seguente descrive una soluzione alternativa per l'uso di progetti SQL non in stile SDK dalla riga di comando in Windows, macOS e Linux.

Prerequisiti

  1. Installare e configurare l'estensione progetti di database SQL.

  2. I file DLL di .NET Core seguenti e il file di destinazione Microsoft.Data.Tools.Schema.SqlTasks.targets sono necessari per compilare un progetto di database SQL dalla riga di comando supportata da tutte le piattaforme supportate dall'estensione di Azure Data Studio per i progetti di database SQL. Questi file vengono creati dall'estensione durante la prima compilazione completata nell'interfaccia di Azure Data Studio e vengono salvati nella cartella dell'estensione in BuildDirectory. In Linux questi file sono salvati in ~\.azuredatastudio\extensions\microsoft.sql-database-projects-x.x.x\BuildDirectory\. Copiare questi 11 file in una cartella nuova e accessibile o annotarne il percorso. Il percorso viene indicato come DotNet Core build folder in questo documento.

    • 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. Se il progetto è stato creato in Azure Data Studio, passare a Compilare il progetto dalla riga di comando. Se il progetto è stato creato in SQL Server Data Tools (SSDT), aprire il progetto nell'estensione Progetto di database SQL di Azure Data Studio. Se si apre un progetto in Azure Data Studio, il file sqlproj verrà aggiornato automaticamente con tre modifiche, riportate per finalità informative:

    1. Condizioni di importazione
    <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. Informazioni di riferimento sui pacchetti
    <ItemGroup>
        <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
    1. Destinazione pulita, necessaria per il supporto della modifica doppia in SQL Server Data Tools (SSDT) e Azure Data Studio
    <Target Name="AfterClean">
        <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/>
    </Target>
    

Compilare il progetto dalla riga di comando

Dalla cartella .NET completa usare il comando seguente:

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

Ad esempio, da /usr/share/dotnet in 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"  

Passaggi successivi