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
Installare e configurare l'estensione progetti di database SQL.
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 inBuildDirectory
. 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 comeDotNet 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
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:- 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"/>
- Informazioni di riferimento sui pacchetti
<ItemGroup> <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/> </ItemGroup>
- 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"