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.
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 framework (TFM) için destek yapılandırabilir ve ardından paketi oluşturmak için dotnet pack veya msbuild /t:pack kullanabilirsiniz.
Birden çok .NET çerçeveyi 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, değiştir
<TargetFramework>netstandard2.0</TargetFramework>to:
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>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
#if NET45veya#if NETSTANDARD2_0kullanabilirsiniz. (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.
Kullanılabilir paket meta verilerinin ve MSBuild özellik adlarının listesi için bkz. paket hedefi. Ayrıca bkz. Bağımlılık varlıklarını denetleme.
Derlemeyle ilgili özellikleri NuGet meta verilerinden ayırmak istiyorsanız, farklı
PropertyGroupbir kullanabilir veya NuGet özelliklerini başka bir dosyaya ekleyip MSBuild'inImportyönergesini kullanarak ekleyebilirsiniz.Directory.Build.PropsveDirectory.Build.TargetsMSBuild 15.0 ile başlayarak da desteklenir.Şimdi kullanın
dotnet packve 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.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
<Description>Sample project that targets multiple TFMs</Description>
</PropertyGroup>
</Project>
Yinelenen çerçevelerle çoklu hedefleme
NuGet 7.6 / .NET SDK 10.0.300'den başlayarak, aynı temel çerçeveye çözümleyen birden çok TargetFrameworks değer kullanabilirsiniz. Bu, birden çok çalışma zamanı için oluşturma veya tek bir projeden konak uygulamasının birden çok sürümünü hedefleme gibi senaryoları etkinleştirir.
Bunun geri yükleme ve paketle nasıl çalıştığı hakkında ayrıntılı bilgi için bkz. Birden çok çerçeveyi hedefleme.