Sdílet prostřednictvím


Sestavení databázového projektu z příkazového řádku

I když rozšíření projektu SQL Database poskytuje grafické uživatelské rozhraní pro sestavení databázového projektu, prostředí sestavení příkazového řádku je k dispozici také pro prostředí Windows, macOS a Linux. Postup sestavení projektu z příkazového řádku se liší mezi projekty SQL ve stylu sady SDK a předchozím formátem projektu SQL ve stylu sady SDK. Tento článek popisuje požadavky a syntaxi potřebné k sestavení dacpac z projektu SQL na příkazovém řádku pro oba typy projektů SQL.

Projekty SQL ve stylu sady SDK (Preview)

Použití Microsoft.Build.Sql s projekty SQL ve stylu sady SDK je upřednostňovanou metodou pro práci s projekty SQL z příkazového řádku.

Pokud chcete vytvořit projekt SQL ve stylu sady SDK z příkazového řádku ve Windows, macOS nebo Linuxu, použijte následující příkaz:

dotnet build /p:NetCoreBuild=true

Poznámka:

Projekty SQL ve stylu sady SDK jsou aktuálně ve verzi Preview.

Projekty SQL bez sady SDK

Následující část popisuje alternativní řešení pro práci s projekty SQL ve stylu sady SDK z příkazového řádku ve Windows, macOS a Linuxu.

Požadavky

  1. Nainstalujte a nakonfigurujte rozšíření PROJEKTŮ SLUŽBY SQL Database.

  2. K sestavení projektu databáze SQL z příkazového řádku ze všech platforem podporovaných rozšířením azure Data Studio pro projekty SQL Database jsou potřeba následující knihovny DLL .NET Core a cílový soubor Microsoft.Data.Tools.Schema.SqlTasks.targets . Tyto soubory jsou vytvořeny příponou během prvního sestavení dokončeného v rozhraní Azure Data Studio a umístěny do složky rozšíření v části BuildDirectory. Například v Linuxu jsou tyto soubory umístěny v ~\.azuredatastudio\extensions\microsoft.sql-database-projects-x.x.x\BuildDirectory\. Zkopírujte tyto 11 soubory do nové a přístupné složky nebo si poznamenejte jejich umístění. Toto umístění se označuje jako DotNet Core build folder v tomto dokumentu.

    • 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. Pokud byl projekt vytvořen v nástroji Azure Data Studio, přeskočte k sestavení projektu z příkazového řádku. Pokud byl projekt vytvořen v SQL Server Data Tools (SSDT), otevřete projekt v rozšíření projektu Azure Data Studio SQL Database. Otevření projektu v Nástroji Azure Data Studio automaticky aktualizuje sqlproj soubor třemi úpravami, které jsou uvedené pro vaše informace:

    1. Podmínky importu
    <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. Referenční informace k balíčku
    <ItemGroup>
        <PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
    1. Čistý cíl, nezbytný pro podporu duálních úprav v SQL Server Data Tools (SSDT) a Azure Data Studio
    <Target Name="AfterClean">
        <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/>
    </Target>
    

Sestavení projektu z příkazového řádku

Z úplné složky .NET použijte následující příkaz:

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

Například z /usr/share/dotnet Linuxu:

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"  

Další kroky