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.
.NET SDK'sı gibi bir geliştirme teknolojisi yığını için gereken tüm derleme altyapısına başvurmak için yalnızca belirli kimliğine göre proje SDK'sı olarak bilinen bir özellik ve hedef kümesine başvurabilirsiniz. Kimlik, özellik tanımları içeren belirli bir dosya kümesine .props ve .targets hedef tanımları içeren dosyalara başvurur. Üst düzey proje düğümündeki özniteliğini Sdk kullanarak bir proje SDK'sine başvurursunuz.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
</Project>
Projenin değerlendirmesi sırasında MSBuild, proje dosyasının başına ve sonuna gizli eklemeler yapar.
<Project>
<!-- Implicit top import -->
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
<!-- Implicit bottom import -->
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
</Project>
Microsoft tarafından dağıtılan birçok SDK vardır. Önceki örnekte atıfta bulunulan proje SDK'sı Microsoft.NET.Sdk olarak adlandırılır. .NET Core ve .NET 5 ve üzeri ile ilişkilendirilmiş proje SDK'ları .NET Proje SDK'sı genel bakış sayfasında listelenir.
Bir proje SDK'sına başvur
Proje SDK'sına başvurmanın üç yolu vardır:
Sdk öğesindeki Project özniteliğini kullanın
<Project Sdk="My.Custom.Sdk">
...
</Project>
Daha önce açıklandığı gibi projenin üstüne ve altına örtük bir içeri aktarma eklenir.
SDK'nın belirli bir sürümünü belirtmek için özniteliğine Sdk ekleyin:
<Project Sdk="My.Custom.Sdk/1.2.3">
...
</Project>
Üst düzey Sdk öğeyi kullanma
<Project>
<Sdk Name="My.Custom.Sdk" Version="1.2.3" />
...
</Project>
Daha önce açıklandığı gibi projenin üstüne ve altına örtük bir içeri aktarma eklenir.
Version Özniteliği gerekli değildir.
Import öğesini projenizin herhangi bir yerinde kullanma
<Project>
<PropertyGroup>
<MyProperty>Value</MyProperty>
</PropertyGroup>
<Import Project="Sdk.props" Sdk="My.Custom.Sdk" />
...
<Import Project="Sdk.targets" Sdk="My.Custom.Sdk" />
</Project>
İçeri aktarmaları projenize açıkça eklediğinizde, sıra üzerinde tam denetim sahibi olursunuz.
öğesini kullanırken Import isteğe bağlı Version bir öznitelik de belirtebilirsiniz. Örneğin, belirtebilirsiniz <Import Project="Sdk.props" Sdk="My.Custom.Sdk" Version="1.2.3" />.
Uyarı
Projeyi Import öğelerini kullanacak şekilde değiştirirseniz, hem .props hem de .targets içe aktarmaları eklediğinizden ve Project öğesinden ve Sdk öğelerinden SDK'yı kaldırdığınızdan emin olun. Bu yapılmadığında yinelemeli aktarımlar ve MSB4011 uyarısı oluşur.
Proje SDK'ları nasıl çözümlenir?
İçeri aktarmayı değerlendirirken MSBuild, belirttiğiniz ada ve sürüme göre proje SDK'sının yolunu dinamik olarak çözümler. MSBuild ayrıca makinenizdeki proje SDK'larını bulan eklentiler olan kayıtlı SDK çözümleyicilerinin bir listesine sahiptir. Bu eklentiler şunlardır:
Belirttiğiniz SDK'nın kimliği ve sürümüyle eşleşen NuGet paketleri için yapılandırılmış paket akışlarınızı sorgulayan NuGet tabanlı bir çözümleyici.
Bu çözümleyici yalnızca isteğe bağlı bir sürüm belirttiyseniz etkindir. Herhangi bir özel proje SDK'sı için kullanılabilir.
.NET SDK ile yüklenen MSBuild SDK'larını çözümleyen bir .NET SDK çözümleyicisi.
Bu çözümleyici, ürünün parçası olan
Microsoft.NET.SdkveMicrosoft.NET.Sdk.Webgibi proje SDK'larını bulur.MSBuild ile yüklenen SDK'ları çözümleyen varsayılan çözümleyici.
NuGet tabanlı SDK çözümleyicisi ,global.json dosyasında bir sürüm belirtmeyi destekler ve bu sayede proje SDK'sı sürümünü tek tek her proje yerine tek bir yerde denetleyebilirsiniz:
{
"msbuild-sdks": {
"My.Custom.Sdk": "5.0.0",
"My.Other.Sdk": "1.0.0-beta"
}
}
Derleme sırasında her proje SDK'sının yalnızca bir sürümü kullanılabilir. Aynı proje SDK'sının iki farklı sürümüne başvurursanız, MSBuild bir uyarı yayar. global.json dosyasında bir sürüm belirtilmişse projelerinizde bir sürüm belirtilmemesi önerilir.