Skapa ett databasprojekt från kommandoraden

Sql Database Project-tillägget innehåller ett grafiskt användargränssnitt för att skapa ett databasprojekt, men det finns även en kommandoradsversion för Windows-, macOS- och Linux-miljöer. Stegen för att skapa ett projekt från kommandoraden skiljer sig mellan SQL-projekt i SDK-format och det tidigare SQL-projektformatet som inte är SDK-format. Den här artikeln beskriver de förutsättningar och syntax som krävs för att skapa ett dacpac från ett SQL-projekt på kommandoraden för båda SQL-projekttyperna.

SQL-projekt i SDK-stil (förhandsversion)

Att använda Microsoft.Build.Sql med SDK-liknande SQL-projekt är den bästa metoden för att arbeta med SQL-projekt från kommandoraden.

Om du vill skapa ett SQL-projekt i SDK-format från kommandoraden i Windows, macOS eller Linux använder du följande kommando:

dotnet build /p:NetCoreBuild=true

Kommentar

SQL-projekt i SDK-format är för närvarande i förhandsversion.

SQL-projekt i icke-SDK-format

I följande avsnitt beskrivs en work-around för att arbeta med SQL-projekt som inte är I SDK-format från kommandoraden i Windows, macOS och Linux.

Förutsättningar

  1. Installera och konfigurera SQL Database Projects-tillägget.

  2. Följande .NET Core-dlls och målfilen Microsoft.Data.Tools.Schema.SqlTasks.targets krävs för att skapa ett SQL-databasprojekt från kommandoraden från alla plattformar som stöds av Azure Data Studio-tillägget för SQL Database Projects. Dessa filer skapas av tillägget under den första versionen som slutfördes i Azure Data Studio-gränssnittet och placeras i tilläggets mapp under BuildDirectory. I Linux placeras till exempel dessa filer i ~\.azuredatastudio\extensions\microsoft.sql-database-projects-x.x.x\BuildDirectory\. Kopiera dessa 11 filer till en ny och tillgänglig mapp eller anteckna deras plats. Den här platsen kallas i DotNet Core build folder det här dokumentet.

    • 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. Om projektet skapades i Azure Data Studio – gå vidare till Skapa projektet från kommandoraden. Om projektet skapades i SQL Server Data Tools (SSDT) öppnar du projektet i Azure Data Studio SQL Database-projekttillägget. När du öppnar projektet i Azure Data Studio uppdateras sqlproj filen automatiskt med tre ändringar som anges för din information:

    1. Importvillkor
    <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. Paketreferens
    <ItemGroup>
        <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
    1. Rensa mål som krävs för dubbel redigering i SQL Server Data Tools (SSDT) och Azure Data Studio
    <Target Name="AfterClean">
        <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/>
    </Target>
    

Skapa projektet från kommandoraden

Använd följande kommando från den fullständiga .NET-mappen:

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

Till exempel från /usr/share/dotnet 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ästa steg