Proje dosyanızda birden çok .NET Framework sürümünü destekleme
Makale
Bir projeyi ilk oluşturduğunuzda, en geniş kapsamlı tüketen projelerle uyumluluk sağladığından bir .NET Standard sınıf kitaplığı oluşturmanızı öneririz. .NET Standard'ı kullanarak varsayılan olarak bir .NET kitaplığına platformlar arası destek eklersiniz. Ancak bazı senaryolarda belirli bir çerçeveyi hedefleyen kodu da eklemeniz gerekebilir. Bu makalede, SDK stili projeler için bunu nasıl yapabileceğiniz gösterilir.
SDK stili projeler için, proje dosyanızda birden çok hedef çerçevesi (TFM) için destek yapılandırabilir, ardından paketi oluşturmak için veya msbuild /t:pack kullanabilirsinizdotnet pack.
Not
nuget.exe CLI, SDK stilindeki projeleri paketlemeyi desteklemediğinden yalnızca veya msbuild /t:packkullanmanız dotnet pack gerekir. Bunun yerine genellikle dosyasındaki .nuspec tüm özellikleri proje dosyasına eklemenizi öneririz. SDK stili olmayan bir projede birden çok .NET Framework sürümünü hedeflemek için bkz . Birden çok .NET Framework sürümünü destekleme.
Birden çok .NET Framework sürümünü destekleyen bir proje oluşturma
Visual Studio'da yeni bir .NET Standard sınıf kitaplığı oluşturun veya kullanın dotnet new classlib.
En iyi uyumluluk için bir .NET Standart sınıf kitaplığı oluşturmanızı öneririz.
Hedef çerçeveleri desteklemek için .csproj dosyasını düzenleyin. Örneğin,
Tekil olan XML öğesini çoğul olarak değiştirdiğinizden emin olun (hem açık hem de kapalı etiketlere "s" ekleyin).
Yalnızca bir TFM'de çalışan herhangi bir kodunuz varsa, TFM'ye bağımlı kodu ayırmak için veya #if NETSTANDARD2_0 kullanabilirsiniz#if NET45. (Daha fazla bilgi için bkz. Çoklu hedefleme.) Örneğin, aşağıdaki kodu kullanabilirsiniz:
public string Platform {
get {
#if NET45
return ".NET Framework"
#elif NETSTANDARD2_0
return ".NET Standard"
#else
#error This code block does not match csproj TargetFrameworks list
#endif
}
}
.csproj dosyasına MSBuild özellikleri olarak istediğiniz NuGet meta verilerini ekleyin.
Derlemeyle ilgili özellikleri NuGet meta verilerinden ayırmak istiyorsanız, farklı PropertyGroupbir kullanabilir veya NuGet özelliklerini başka bir dosyaya ekleyip MSBuild'in Import yönergesini kullanarak ekleyebilirsiniz. Directory.Build.Props ve Directory.Build.Targets MSBuild 15.0 ile başlayarak da desteklenir.
Şimdi kullanın dotnet pack ve elde edilen .nupkg hem .NET Standard 2.0 hem de .NET Framework 4.5'i hedefler.
Yukarıdaki adımlar ve .NET Core SDK 2.2 kullanılarak oluşturulan .csproj dosyası aşağıdadır.
.NET projesi oluşturun ve projenizde paketler eklemeyi ve paket bağımlılıklarını yönetmeyi öğrenin. Visual Studio Code aracılığıyla C# uygulamalarınıza kitaplık ve araç eklemek için .NET Core CLI'yi ve NuGet kayıt defterini kullanın.