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

  1. Installieren und konfigurieren Sie die Erweiterung „SQL Database Projects“.

  2. 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 unter BuildDirectory 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 als DotNet 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
  3. 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 folgenden drei Bearbeitungen aktualisiert:

    1. 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"/>
    
    1. Referenz zu Paketen
    <ItemGroup>
        <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
    1. 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"  

Nächste Schritte