Erstellen eines Datenbankprojekts über die Befehlszeile
Die Erweiterung „SQL-Datenbank-Projekte“ stellt eine grafische Benutzeroberfläche zum Erstellen eines Datenbankprojekts bereit. In Windows-, macOS- und Linux-Umgebungen steht auch eine Buildoption über die Befehlszeile zur Verfügung. Die Schritte zum Erstellen eines Projekts über die Befehlszeile unterscheiden sich zwischen SQL-Projekten im SDK-Stil und dem vorherigen SQL-Projektformat, das nicht im SDK-Stil ist. In diesem Artikel werden die Voraussetzungen und die Syntax für die Erstellung eines DAC-Pakets aus einem SQL-Projekt über die Befehlszeile für beide SQL-Projekttypen beschrieben.
SQL-Projekte im SDK-Stil (Vorschau)
Die Verwendung von Microsoft.Build.Sql mit SQL-Projekten im SDK-Stil ist die bevorzugte Methode für die Arbeit mit SQL-Projekten aus der Befehlszeile.
Um ein SQL-Projekt im SDK-Stil über die Befehlszeile unter Windows, macOS oder Linux zu erstellen, verwenden Sie den folgenden Befehl:
dotnet build /p:NetCoreBuild=true
Hinweis
Die SQL-Projekte im SDK-Stil befinden sich derzeit in der Vorschau.
SQL-Projekte, die nicht im SDK-Stil sind
Im folgenden Abschnitt wird eine Problemumgehung für die Arbeit mit SQL-Projekten im Nicht-SDK-Stil über die Befehlszeile unter Windows, macOS und Linux beschrieben.
Voraussetzungen
Installieren und konfigurieren Sie die Erweiterung „SQL Database Projects“.
Die folgenden .NET Code-DLL-Dateien und die Zieldatei
Microsoft.Data.Tools.Schema.SqlTasks.targets
sind erforderlich, um ein SQL-Datenbankprojekt über die Befehlszeile zu erstellen. Dies gilt für alle Plattformen, die von der Azure Data Studio-Erweiterung „SQL Database Projects“ unterstützt werden. Diese Dateien werden von der Erweiterung während des ersten Builds auf der Benutzeroberfläche von Azure Data Studio erstellt und im Ordner der Erweiterung unterBuildDirectory
gespeichert. Unter Linux werden diese Dateien beispielsweise in~\.azuredatastudio\extensions\microsoft.sql-database-projects-x.x.x\BuildDirectory\
platziert. Kopieren Sie diese elf Dateien in einen neuen, zugänglichen Ordner, oder notieren Sie sich den Speicherort. Dieser Speicherort wird im vorliegenden Dokument alsDotNet Core build folder
bezeichnet.- 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
Wenn das Projekt in Azure Data Studio erstellt wurde, fahren Sie mit dem Schritt Erstellen des Projekts über die Befehlszeile fort. Wenn das Projekt in SQL Server Data Tools (SSDT) erstellt wurde, öffnen Sie es in der Azure Data Studio-Erweiterung „SQL Database Project“. Durch Öffnen des Projekts in Azure Data Studio wird die Datei
sqlproj
automatisch mit drei Bearbeitungen aktualisiert:- Importbedingungen
<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"/>
- Referenz zu Paketen
<ItemGroup> <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/> </ItemGroup>
- Zielbereinigung, erforderlich zur Unterstützung der dualen Bearbeitung in SQL Server Data Tools (SSDT) und Azure Data Studio
<Target Name="AfterClean"> <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/> </Target>
Erstellen des Projekts über die Befehlszeile
Verwenden Sie unter Angabe des vollständigen .NET-Ordners den folgenden Befehl:
dotnet build "<sqlproj file path>" /p:NetCoreBuild=true /p:NETCoreTargetsPath="<DotNet Core build folder>"
Verwenden Sie z. B. /usr/share/dotnet
unter 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"