Översikt över ramverksmål
I Visual Studio kan du ange den version av .NET som du vill att projektet ska rikta in sig på. Ramverksmål hjälper till att garantera att programmet endast använder funktioner som är tillgängliga i den angivna ramverksversionen. För att .NET Framework-appar ska kunna köras på en annan dator måste den ramverksversion som programmet riktar sig mot vara kompatibel med den ramverksversion som är installerad på datorn.
En Visual Studio-lösning kan innehålla projekt som riktar sig mot olika versioner av .NET. Observera dock att du bara kan skapa mot en enda version av .NET, antingen med hjälp av referensvillkor för en enda version eller skapa olika binärfiler för varje målramverk. Mer information om målramverk finns i Target Frameworks.
Tips
Du kan också rikta program för olika plattformar. Mer information finns i Multitargeting.
Målfunktioner för ramverk
Ramverksinriktning innehåller följande funktioner:
När du öppnar ett projekt som riktar sig mot en tidigare ramverksversion kan Visual Studio automatiskt uppgradera projektet eller lämna målet as-is.
När du skapar ett .NET Framework-projekt kan du ange vilken version av .NET Framework som du vill rikta in dig på.
Du kan rikta in dig på flera ramverk i ett enda projekt.
Du kan rikta in dig på en annan version av .NET i vart och ett av flera projekt i samma lösning.
Du kan ändra den version av .NET som ett befintligt projekt har som mål.
När du ändrar den version av .NET som ett projekt har som mål gör Visual Studio alla nödvändiga ändringar i referenser och konfigurationsfiler.
När du arbetar med ett projekt som är avsett för en tidigare ramverksversion ändrar Visual Studio utvecklingsmiljön dynamiskt enligt följande:
Den filtrerar objekt i dialogrutan Lägg till nytt objekt, dialogrutan Lägg till ny referens och dialogrutan Lägg till tjänstreferens om du vill utelämna alternativ som inte är tillgängliga i målversionen.
Den filtrerar anpassade kontroller i Toolbox- för att ta bort de som inte är tillgängliga i målversionen och för att endast visa de mest up-todatumkontroller när flera kontroller är tillgängliga.
Den filtrerar IntelliSense- för att utelämna språkfunktioner som inte är tillgängliga i målversionen.
Den filtrerar egenskaper i fönstret Egenskaper för att utelämna de som inte är tillgängliga i målversionen.
Den filtrerar menyalternativ för att utelämna alternativ som inte är tillgängliga i målversionen.
För versioner använder den den version av kompilatorn och kompilatoralternativen som är lämpliga för målversionen.
Notis
- Ramverksinriktning garanterar inte att programmet körs korrekt. Du måste testa programmet för att se till att det körs mot målversionen.
- Du kan inte rikta in dig på ramverksversioner under .NET Framework 2.0.
Ändra målramverket
I ett befintligt Visual Basic-, C#- eller F#-projekt ändrar du målversionen av .NET i dialogrutan projektegenskaper. Information om hur du ändrar målversionen för C++-projekt finns i Så här ändrar du målramverket och plattformsverktygsuppsättningen i stället.
I Solution Exploreröppnar du snabbmenyn för det projekt som du vill ändra och väljer sedan Egenskaper.
I den vänstra kolumnen i fönstret Egenskaper väljer du fliken Program.
Notera
När du har skapat en UWP-app kan du inte ändra målversionen av windows eller .NET.
I listan Target Framework väljer du den version som du vill använda.
I dialogrutan verifiering som visas väljer du knappen Ja.
Projektet avlastas. När den laddas om riktas den mot den .NET-version som du precis valde.
I Solution Exploreröppnar du snabbmenyn för det projekt som du vill ändra och väljer sedan Egenskaper.
I den vänstra kolumnen i fönstret Egenskaper väljer du fliken Program.
Not
När du har skapat en UWP-app kan du inte ändra målversionen av windows eller .NET.
I listan Target Framework väljer du den version som du vill använda.
För ett .NET Framework-projektkan dialogrutan du ser se ut ungefär så här:
För ett .NET-projektkan dialogrutan se ut ungefär så här:
Om en verifieringsdialogruta visas väljer du knappen Ja.
Projektet lastas av. När den laddas om riktas den mot den .NET-version som du precis valde.
Rikta in sig på flera ramverk
Med .NET 5 och senare kan du skapa ett projekt för flera ramverk i en enda version genom att redigera projektfilen manuellt. Öppna projektfilen och ersätt egenskapen TargetFramework
med TargetFrameworks
och ange din lista över Target Framework Monikers (TFM), avgränsad med semikolon, som i följande kod:
<TargetFrameworks>net7.0;net8.0</TargetFrameworks>
Se listan över TFM:er i Target-ramverk i SDK-liknande projekt.
Du måste läsa in projektet igen efter att du har gjort den här ändringen. Om du sedan öppnar fönstret Egenskaper kan du på fliken Applikation redigera listan över målramverk.
Not
Om koden innehåller referenser till en annan version av .NET än den som du har riktat in dig på kan felmeddelanden visas när du kompilerar eller kör koden. Lös dessa fel genom att ändra referenserna. Se Felsöka .NET-målfel.
Tips
Beroende på målramverket kan det representeras på följande sätt i projektfilen:
- För en .NET Core-app:
<TargetFramework>netcoreapp2.1</TargetFramework>
- För en .NET Standard-app:
<TargetFramework>netstandard2.0</TargetFramework>
- För en .NET Framework-app:
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
Välj en målramverksversion
När du skapar ett .NET Framework-projekt kan du välja .NET Framework-målversionen när du har valt en projektmall. Listan över tillgängliga ramverk innehåller de installerade ramverksversioner som gäller för den valda malltypen. För non-.NET Framework-projektmallar, till exempel .NET Core-mallar, visas inte listrutan Framework.
Om du väljer att skapa ett .NET Framework-projektvisas ett gränssnitt som liknar följande skärmbild:
Om du väljer att skapa ett .NET-projektvisas användargränssnittet (UI) som liknar följande två skärmbilder.
Den första skärmen du ser är dialogrutan Konfigurera ditt nya projekt.
Den andra skärmen som visas är dialogrutan Ytterligare alternativ.
Lösa system- och användarsammansättningsreferenser
Om du vill rikta in dig på en .NET-version måste du först installera lämpliga sammansättningsreferenser. Du kan ladda ned utvecklarpaket för olika versioner av .NET på .NET-nedladdningar sidan.
För .NET Framework-projekt inaktiverar dialogrutan Lägg till referens systemsammansättningar som inte hör till .NET Framework-målversionen så att de inte oavsiktligt kan läggas till i ett projekt. (Systemsammansättningar är .dll filer som ingår i en .NET Framework-version.) Referenser som tillhör en ramverksversion som är högre än målversionen löser inte, och kontroller som är beroende av en sådan referens kan inte läggas till. Om du vill aktivera en sådan referens återställer du .NET Framework-målet för projektet till ett som innehåller referensen.
Mer information om sammansättningsreferenser finns i Lösa sammansättningar vid designtillfället.
Aktivera LINQ
När du riktar in dig på .NET Framework 3.5 eller senare läggs en referens till System.Core och en import på projektnivå för System.Linq (endast i Visual Basic) till automatiskt. Om du vill använda LINQ-funktioner måste du också aktivera Option Infer
(endast i Visual Basic). Referensen och importen tas bort automatiskt om du ändrar målet till en tidigare .NET Framework-version. Mer information finns i Arbeta med LINQ.