Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Wanneer u voor het eerst een project maakt, wordt u aangeraden een .NET Standard-klassebibliotheek te maken, omdat deze compatibiliteit biedt met het breedste scala aan verbruikende projecten. Met .NET Standard voegt u standaard platformoverschrijdende ondersteuning toe aan een . NET-bibliotheek . In sommige scenario's moet u echter mogelijk ook code opnemen die gericht is op een bepaald framework. In dit artikel leest u hoe u dit kunt doen voor SDK-projecten .
Voor SDK-projecten kunt u ondersteuning configureren voor meerdere doelenframeworks (TFM) in uw projectbestand en vervolgens dotnet pack of msbuild /t:pack gebruiken om het pakket te maken.
Een project maken dat ondersteuning biedt voor meerdere .NET Frameworks
Maak een nieuwe .NET Standard-klassebibliotheek in Visual Studio of gebruik
dotnet new classlib.U wordt aangeraden een .NET Standard-klassebibliotheek te maken voor de beste compatibiliteit.
Bewerk het .csproj-bestand om de doelframeworks te ondersteunen. Bijvoorbeeld: wijzigen
<TargetFramework>netstandard2.0</TargetFramework>to:
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>Zorg ervoor dat u het XML-element wijzigt van enkelvoud in meervoud (voeg de 's' toe aan zowel de geopende als de gesloten tags).
Als u code hebt die slechts in één TFM werkt, kunt u TFM-afhankelijke code scheiden met
#if NET45of#if NETSTANDARD2_0. (Zie Multitarget voor meer informatie.) U kunt bijvoorbeeld de volgende code gebruiken: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 } }Voeg nuget-metagegevens toe die u wilt toevoegen aan de .csproj als MSBuild-eigenschappen.
Zie het pakketdoel voor de lijst met beschikbare pakketmetagegevens en de msBuild-eigenschapsnamen. Zie Ook Het beheren van afhankelijkheidsassets.
Als u build-gerelateerde eigenschappen van NuGet-metagegevens wilt scheiden, kunt u een ander
PropertyGroupbestand gebruiken of de NuGet-eigenschappen in een ander bestand plaatsen en msBuild-instructieImportgebruiken om deze op te nemen.Directory.Build.PropsenDirectory.Build.Targetsworden ook ondersteund vanaf MSBuild 15.0.Gebruik nu
en het resulterende .nupkg bestand richt zich zowel op .NET Standard 2.0 als .NET Framework 4.5.
Hier volgt het .csproj-bestand dat wordt gegenereerd met behulp van de voorgaande stappen en .NET Core SDK 2.2.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
<Description>Sample project that targets multiple TFMs</Description>
</PropertyGroup>
</Project>
Meerdere doelgroepen met dubbele frameworks
Vanaf NuGet 7.6 / .NET SDK 10.0.300 kunt u meerdere TargetFrameworks waarden gebruiken die worden omgezet in hetzelfde onderliggende framework. Dit maakt scenario's mogelijk, zoals bouwen voor meerdere runtimes of gericht op meerdere versies van een hosttoepassing vanuit één project.
Zie Targeting multiple frameworks voor meer informatie over hoe dit werkt met herstellen en verpakken.