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 faydalanmak için onları SDK tarzı SQL projelerine dönüştürebilirsiniz.
Projeyi dönüştürdükten sonra, SDK tarzı projenin yeni özelliklerini kullanabilirsiniz, örneğin:
- Çapraz platform oluşturma desteği
- Basitleştirilmiş proje dosya formatı
- Paket referansları
Dönüşümü dikkatlice tamamlamak için şu adımları izleyin:
- Ö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.
Visual Studio'daki SQL Server Veri Araçları (SSDT) SDK tarzı projeleri desteklemiyor. Projeyi dönüştürdükten sonra, aşağıdaki araçlardan birini kullanarak projeyi oluştur veya düzenleyin:
- Visual Studio Code'ta SQL Veritabanı Projeleri uzantısı
- Database DevOps in SQL Server Management Studio (SSMS)
- Komut satırı
- SQL Server Veri Araçları, SDK tarzı (önizleme) Visual Studio 2022'de
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ü
- SQL Server Veri Araçları, SDK stili (önizleme)
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 Gezgini'nde, dönüştürmek istediğiniz projeye ait .sqlproj dosyasının, dosya uzantısının sonuna .original eklenmiş bir kopyasını oluşturun. Örneğin MyProject.sqlproj, MyProject.sqlproj.original olur.
2. Adım: Karşılaştırma için özgün projeden dosya .dacpac oluşturma
Projeyi Visual Studio'da 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'da 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.
Visual Studio Code'da proje klasörünü açın. Visual Studio Code'un Veritabanı Projeleri görünümünde proje düğümüne sağ tıklayın ve Oluştur'a tıklayın.
Ö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'da 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.
komutunu kullanarak dotnet build komut satırından SQL veritabanı projeleri oluşturabilirsiniz.
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 Gezgini kullanarak, derleme süreci tarafından oluşturulan dosyayı .dacpac bulup proje dizininin dışındaki yeni bir klasöre kopyalayın.original_project.dacpac Dönüşümünüzü daha sonra doğrulamak için bu .dacpac dosyayı karşılaştırmak için kullanın.
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 öğeyi proje dosyasından çıkarın.
ö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 tarzı SQL projelerinde, .sql proje klasör ağacındaki (**/*.sql) tüm dosyalar varsayılan olarak dahil edilir. Derleme performansı sorunlarını önlemek için, bu dosyalar için <Build Include="...." /> öğelerinde belirtilen .sql dosyalarını kaldırın.
Proje dosyasından aşağıdaki gibi satırları kaldırın:
<Build Include="SalesLT/Products.sql" />
<Build Include="SalesLT/SalesLT.sql" />
<Build Include="SalesLT/Categories.sql" />
<Build Include="SalesLT/CategoriesProductCount.sql" />
Silmeyin:
-
<Build Include="..." />SQL proje klasör ağacında olmayan dosyalar için öğeler.sql -
<PreDeploy Include="..." />veya<PostDeploy Include="..." />öğeler, çünkü bu düğümler o dosyalar için belirli davranışları belirler -
.sqlDosya olmayan öğeler, örneğin.publish.xmlöğelerdeki<None Include="..." />dosyalar,.refactorlog.xmlöğelerdeki<RefactorLog Include="..." />dosyalar veya.xsdöğelerdeki<Build Include="..." />dosyalar
İ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
Orijinal SQL projeleri, Release ve Debug derleme ayarları için iki büyük blok içerirken, SDK tarzı SQL projelerinde SDK bu seçeneklerin varsayılan ayarlarını bilir. 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, onu yeni SDK tarzı proje dosyasına referans olacak şekilde güncelleyin. Çö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
Çözüm dosyası sadece SQL projesini içeriyorsa, çözüm dosyasını kaldırıp SDK tarzı 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
Çözüm dosyası birden fazla proje içeriyorsa, çözüm dosyasını yeni SDK tarzı proje dosyasına referans olacak şekilde güncelleyin. Çö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
Bir Microsoft.Build.Sql projesi için PROJECT_TYPE_GUID değeri 42EA0DBD-9CF1-443E-919E-BE9C484E4577’dir. Bu, PROJECT_GUID proje dosyası <ProjectGuid> öğesinde bulunan proje için benzersiz bir tanımlayıcıdır. Projenizde bir çözüm dosyanız varsa, değeri PROJECT_GUID değiştirmenize gerek yok.
PROJECT_TYPE_GUID değerini Microsoft.Build.Sql proje türü GUID'si olarak değiştirin.
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 aşağıdaki seçeneklerden birini kullanın:
- Komut satırı
- Visual Studio Code'ta SQL Veritabanı Projeleri uzantısı
- Visual Studio 2022'de SQL Server Veri Araçları, SDK stili (önizleme)
- Veritabanı DevOps iş yükü (önizleme) ile SQL Server Management Studio (SSMS)
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.
Visual Studio Code'da proje klasörünü açın. Visual Studio Code'un Veritabanı Projeleri görünümünde proje düğümüne sağ tıklayın ve Oluştur'a tıklayın.
Veritabanı DevOps iş yükü (önizleme) yüklü olarak proje dosyasını SQL Server Management Studio'da (SSMS) açın. Nesne Gezgini'nde veritabanı projesine sağ tıklayın ve Oluştur'a tıklayın.
komutunu kullanarak dotnet build komut satırından SQL veritabanı projeleri oluşturabilirsiniz.
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 Gezgini'ni kullanarak derleme işlemi tarafından oluşturulan .dacpac öğesini bulun ve bunu proje dizininin dışında yeni bir klasöre kopyalayın. Dönüşümünüzü daha sonra doğrulamak için bu .dacpac dosyayı karşılaştırmak için kullanın.
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 yeteneklerini kullanarak iki .dacpac dosya arasındaki veritabanı modellerindeki farkı görselleştirin. Alternatif olarak, iki .dacpac dosyayı karşılaştırmak için DacpacVerify komut satırı aracını kullanın; bu iki dosyayı dağıtım öncesi/sonrası betikleri ve proje ayarları dahil olmak üzere karşılaştırabilirsiniz.
DacpacVerify'i dotnet aracı olarak kurabilirsiniz. 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 .dacpac nesneleri karşılaştırmak için ş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 Visual Studio Code kullanın.
Visual Studio Code'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ı SQL Server Management Studio'da kullanılamaz. Şemaları karşılaştırmak için Visual Studio Code veya Visual Studio kullanın.
Grafik şema karşılaştırması Visual Studio ve Visual Studio Code'da kullanılabilir.
Şema karşılaştırması yaptığınızda hiçbir sonuç gösterilmemeli. 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.