Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Yeni BIR SDK stili SQL projesi oluşturmak hızlı bir görevdir. Ancak, mevcut SQL projeleriniz varsa, yeni özelliklerden yararlanmak için bunları SDK stili SQL projelerine dönüştürebilirsiniz.
Projeyi dönüştürdükten sonra SDK stilindeki projenin aşağıdaki gibi yeni özelliklerini kullanabilirsiniz:
- çapraz platform yapı desteği
- basitleştirilmiş proje dosya biçimi
- paket referansları
Dönüştürmeyi dikkatle tamamlamak için şunları yapacağız:
- Özgün proje dosyasının yedeğini oluşturun.
- Karşılaştırma için özgün projeden bir
.dacpacdosya oluşturun. - Proje dosyasını SDK stilinde bir proje olarak değiştirin.
- Karşılaştırma için değiştirilen projeden bir
.dacpacdosya oluşturun. -
.dacpacdosyalarının aynı olduğunu doğrulayın.
SDK stilindeki projeler Visual Studio'daki SQL Server Veri Araçları'nda (SSDT) desteklenmez. Dönüştürüldükten sonra, projeyi oluşturmak veya düzenlemek için aşağıdakilerden birini kullanmanız gerekir:
- komut satırı
- Visual Studio Code'da SQL Veritabanı Projeleri uzantısı
- Azure Data Studio'da SQL Veritabanı Projeleri uzantısı
- Visual Studio 2022'de SQL Server Veri Araçları, SDK stili (önizleme)
Note
SQL projenizin bu adımların ötesinde gerekli değişiklikleri genişleten özelleştirmeler içerdiğini fark edebilirsiniz. Bu makaleye ek olarak DacFx GitHub deposu , özgün SQL projesinden SDK stili SQL projelerine yükseltmek için gereken değişiklikleri anlamak için kullanılabilir.
Prerequisites
- .NET 8 SDK
- Visual Studio 2022 Community, Professional veya Enterprise sürümü
- visual studio için SQL Server Veri Araçları'nı (SSDT) yükleme
- .NET 8 SDK
- Visual Studio 2022 Community, Professional veya Enterprise sürümü
- Visual Studio 2022'de yüklenen SDK tarzı (önizleme) SQL Server Veri Araçları
- .NET 8 SDK
- VS Code
- SQL Veritabanı Projeleri uzantısı veya VS Code için SQL Veritabanı Projeleri uzantısı
1. Adım: Özgün proje dosyasının yedeğini oluşturma
Projeyi dönüştürmeden önce özgün proje dosyasının yedeğini oluşturun. Bu şekilde, gerekirse özgün projeye geri dönebilirsiniz.
Dosya gezgininde, dönüştürmek istediğiniz proje için .sqlproj dosyasının bir kopyasını oluşturun ve dosya uzantısının sonuna .original ekleyin. Örneğin MyProject.sqlproj, MyProject.sqlproj.original olur.
2. Adım: Karşılaştırma için özgün projeden dosya .dacpac oluşturma
Visual Studio 2022'de projeyi açın. Dosya .sqlproj hala özgün biçimde olduğundan, dosyayı özgün SQL Server Veri Araçları'nda açarsınız.
Çözüm Gezgini'nde veritabanı düğümüne sağ tıklayıp Oluştur'a tıklayarak projeyi Visual Studio'da oluşturun.
Özgün projeden bir .dacpac dosya oluşturmak için Visual Studio'da özgün SQL Server Veri Araçları'nı (SSDT) kullanmanız gerekir. Özgün SQL Server Veri Araçları'nın yüklü olduğu proje dosyasını Visual Studio 2022'de açın.
Çözüm Gezgini'nde veritabanı düğümüne sağ tıklayıp Oluştur'a tıklayarak projeyi Visual Studio'da oluşturun.
VS Code veya Azure Data Studio'da proje klasörünü açın. VS Code veya Azure Data Studio'nun Veritabanı Projeleri görünümünde proje düğümüne sağ tıklayın ve Derlemeseçin.
SQL veritabanı projeleri, dotnet build komutu kullanılarak komut satırından oluşturulabilir.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Derleme işlemi, varsayılan olarak projenin .dacpac klasörüne bir bin\Debug dosyası oluşturur. Dosya gezginini .dacpac kullanarak derleme işlemi tarafından oluşturulan öğesini bulun ve olarak proje dizininin original_project.dacpacdışında yeni bir klasöre kopyalayın. Bu .dacpac dosyayı daha sonra dönüştürmemizi doğrulamak için karşılaştırma için kullanırız.
3. Adım: Proje dosyasını SDK stilinde bir proje olarak değiştirme
Proje dosyasını değiştirmek, el ile gerçekleştirilen ve en iyi şekilde metin düzenleyicisinde gerçekleştirilen bir işlemdir.
.sqlproj Dosyayı bir metin düzenleyicisinde açın ve aşağıdaki değişiklikleri yapın:
Gerekli: SDK referansını ekleyin
Proje öğesinin içinde, Microsoft.Build.Sql'e ve aşağıdaki kod parçacığında Sdk'nin dahil olduğu en son sürüme başvurmak amacıyla bir https://www.nuget.org/packages/Microsoft.build.sql öğesi ekleyin.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0">
<Sdk Name="Microsoft.Build.Sql" Version="#.#.#" />
...
Gerekli: Gereksiz derleme hedefi içeri aktarmalarını kaldırma
SQL projelerinin orijinal sürümleri, İçeri Aktarma deyimlerinde çeşitli derleme hedeflerine ve özelliklerine atıfta bulunur.
<Import/> Benzersiz ve kasıtlı bir değişiklik olan açıkça eklediğiniz öğeler dışında, ile <Import ...>başlayan satırları kaldırın.
örneğinizde .sqlprojvarsa kaldırılacak örnekler:
...
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Condition="..." Project="...\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
...
Gerekli: Özellikler klasörünü kaldırma
Özgün SQL projelerinde, çözüm gezginindeki proje özelliklerine erişimi temsil eden bir Properties klasör için bir giriş vardır. Bu öğenin proje dosyasından kaldırılması gerekir.
örneğinizde .sqlprojvarsa kaldırmak için:
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
Gerekli: Varsayılan olarak dahil edilen Derleme öğelerini kaldırın
Özgün SQL projeleri, proje dosyasındaki veritabanı nesnelerini açıkça öğe olarak .sql temsil eden tüm <Build Include="..." /> dosyaları listeler. SDK stili SQL projelerinde, proje klasör ağacındaki (.sql) tüm **/*.sql dosyalar varsayılan olarak dahil edilir, bu nedenle derleme performansı sorunlarını önlemek için bu dosyaların öğelerinin kaldırılması <Build Include="...." /> gerekir.
Proje dosyasından kaldırılması gereken satırlar, örneğin:
<Build Include="SalesLT/Products.sql" />
<Build Include="SalesLT/SalesLT.sql" />
<Build Include="SalesLT/Categories.sql" />
<Build Include="SalesLT/CategoriesProductCount.sql" />
<PreDeploy Include="..." /> veya <PostDeploy Include="..." /> öğelerini kaldırmamalısınız, çünkü bu düğümler söz konusu dosyalar için belirli bir davranışı dikte eder. Ayrıca, SQL proje klasör ağacında olmayan dosyaların öğelerini de kaldırmamalısınız <Build Include="..." /> .
İsteğe bağlı: SSDT başvurularını kaldırma
Özgün SQL Server Veri Araçları (SSDT), Visual Studio yüklemesini algılamak için proje dosyasında ek içerik gerektiriyor. SDK stili SQL projelerinde bu satırlar gereksizdir ve kaldırılabilir:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
</PropertyGroup>
İsteğe bağlı: Varsayılan derleme ayarlarını kaldırma
Özgün SQL projeleri Yayın ve Hata Ayıklama derleme ayarları için iki büyük blok içerirken, SDK stili SQL projelerinde bu seçeneklerin varsayılanları SDK tarafından bilinir. Derleme ayarlarında özelleştirmeleriniz yoksa şu blokları kaldırmayı göz önünde bulundurun:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
Proje özellikleri başvurusu, kullanılabilir özellikleri ve bunların varsayılanlarını listeler.
4. Adım: Çözüm dosyaları
Proje dosyanıza bir çözüm dosyasında (.sln) başvurulabilir. Bir çözüm dosyanız varsa, yeni SDK stili proje dosyasına başvurmak için dosyayı güncelleştirmeniz gerekir. Çözüm dosyanız yoksa bu bölümü atlayabilir ve 5. Adıma geçebilirsiniz.
1. Seçenek: Yeni çözüm dosyası oluşturma
Yalnızca SQL projesini içeren bir çözüm dosyası için, çözüm dosyasını kaldırmak ve SDK stili projeyle yeni bir çözüm dosyası oluşturmak daha kolaydır.
dotnet new sln --name MySolution
dotnet sln MySolution.sln add MyDatabaseProject\MyDatabaseProject.sqlproj
Seçenek 2: Çözüm dosyasını düzenleme
Bir çözüm dosyası birden çok proje içerdiğinde, çözüm dosyasını yeni SDK stili proje dosyasına başvuracak şekilde güncelleştirmeniz gerekir. Çözüm dosyasını bir metin düzenleyicisinde düzenleyebilir ve proje başvuruyu yeni SDK stili proje dosyasıyla değiştirebilirsiniz. Çözüm dosyasındaki proje başvurusu şu şekilde görünmelidir:
Project("{PROJECT_TYPE_GUID}") = "MyDatabaseProject", "MyDatabaseProject\MyDatabaseProject.sqlproj", "{PROJECT_GUID}"
EndProject
PROJECT_TYPE_GUID Microsoft.Build.Sql projesinin değeri ve 42EA0DBD-9CF1-443E-919E-BE9C484E4577PROJECT_GUID proje dosyası <ProjectGuid> öğesinde bulunan projenin benzersiz tanımlayıcısıdır. Projenizle birlikte bir çözüm dosyanız varsa, değerin PROJECT_GUID değiştirilmesi gerekmez ve özgün proje dosyasındakiyle aynı kalabilir. Değerin PROJECT_TYPE_GUID Microsoft.Build.Sql proje türü GUID olarak değiştirilmesi gerekir.
5. Adım: Karşılaştırma için değiştirilen projeden dosya .dacpac oluşturma
SQL projesi artık Visual Studio 2022 ile uyumlu değildir. Projeyi oluşturmak veya düzenlemek için şunlardan birini kullanmanız gerekir:
- komut satırı
- Visual Studio Code'da SQL Veritabanı Projeleri uzantısı
- Azure Data Studio'da SQL Veritabanı Projeleri uzantısı
- Visual Studio 2022'de SQL Server Veri Araçları, SDK stili (önizleme)
Proje dosyası artık SDK stilindedir, ancak Visual Studio 2022'de açmak için SQL Server Veri Araçları, SDK stilinde (önizleme) yüklü olmalıdır. PROJEYI VISUAL Studio 2022'de SQL Server Veri Araçları, SDK stili (önizleme) yüklü olarak açın.
VS Code veya Azure Data Studio'da proje klasörünü açın. VS Code veya Azure Data Studio'nun Veritabanı Projeleri görünümünde proje düğümüne sağ tıklayın ve Derlemeseçin.
SQL veritabanı projeleri, dotnet build komutu kullanılarak komut satırından oluşturulabilir.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Derleme işlemi, varsayılan olarak projenin .dacpac klasörüne bir bin\Debug dosyası oluşturur. Dosya gezginini .dacpac kullanarak derleme işlemi tarafından oluşturulan öğesini bulun ve proje dizininin dışında yeni bir klasöre kopyalayın. Bu .dacpac dosyayı daha sonra dönüştürmemizi doğrulamak için karşılaştırma için kullanırız.
6. Adım: Dosyaların aynı olduğunu .dacpac doğrulayın
Dönüştürmenin başarılı olduğunu doğrulamak için özgün ve değiştirilmiş projelerden oluşturulan dosyaları karşılaştırın .dacpac . SQL projelerinin şema karşılaştırma özellikleri, iki .dacpac dosya arasındaki veritabanı modellerindeki farkı görselleştirmemize olanak tanır. Alternatif olarak DacpacVerify komut satırı yardımcı programı, dağıtım öncesi/sonrası betikleri ve proje ayarları dahil olmak üzere iki .dacpac dosyayı karşılaştırmak için kullanılabilir.
DacpacVerify, dotnet aracı olarak yüklenebilir. Aracı yüklemek için aşağıdaki komutu çalıştırın:
dotnet tool install --global Microsoft.DacpacVerify --prerelease
DacpacVerify söz dizimi, iki .dacpac dosyasının dosya yolunu dacpacverify <source DACPAC path> <target DACPAC path> olarak belirtmektir. İki .dacpac dosyayı karşılaştırmak için aşağıdaki komutu çalıştırın:
DacpacVerify original_project.dacpac modified_project.dacpac
Dosyalardaki nesneleri karşılaştırmak için Visual Studio veya Azure Data Studio'daki .dacpac şema karşılaştırma aracını kullanabilirsiniz.
Visual Studio'yu bir proje yüklenmeden başlatın.
Araçlar>SQL Server>Yeni Şema Karşılaştırması'na gidin. Kaynak olarak özgün .dacpac dosyayı ve hedef olarak değiştirilen .dacpac dosyayı seçin. Visual Studio'da Şema Karşılaştırma'yı kullanma hakkında daha fazla bilgi için bkz. Şema karşılaştırmasını kullanarak farklı veritabanı tanımlarını karşılaştırma.
Visual Studio'daki SDK tarzı SQL projeleri önizlemesinde grafiksel şema karşılaştırması henüz mevcut değil. Şemaları karşılaştırmak için Azure Data Studio'yu kullanın.
Şema karşılaştırması Visual Studio Code'da kullanılamaz. Şemaları karşılaştırmak için Azure Data Studio veya Visual Studio kullanın.
Azure Data Studio'da, henüz yüklü değilse SQL Server Şema Karşılaştırma uzantısını yükleyin. Komut paletini Ctrl/Cmd+Shift+P ile açıp Schema Compare yazarak komut paletinden yeni bir şema karşılaştırması başlatın.
Kaynak olarak özgün .dacpac dosyayı ve hedef olarak değiştirilen .dacpac dosyayı seçin.
Grafik şema karşılaştırması Visual Studio ve Azure Data Studio'da kullanılabilir.
Şema karşılaştırması çalıştırıldığında hiçbir sonuç görüntülenmemelidir. Farklılıkların olmaması, özgün ve değiştirilmiş projelerin eşdeğer olduğunu ve dosyada aynı veritabanı modelini ürettiğini .dacpac gösterir.
Note
Şema karşılaştırması üzerinden .dacpac dosyalarının karşılaştırılması, dağıtım öncesi/sonrası betikleri, yeniden düzenleme günlüğü veya diğer proje ayarlarını doğrulamaz. Yalnızca veritabanı modelini doğrular. DacpacVerify komut satırı yardımcı programını kullanmak, iki .dacpac dosyaya eşdeğer olduğunu doğrulamanın önerilen yoludur.