Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln innehåller information om Visual Studio-funktioner för F#-utveckling.
Installera F#-stöd
Om du vill utveckla med F# i Visual Studio installerar du först .NET Desktop Development-arbetsbelastningen om du inte redan har gjort det. Du installerar Visual Studio-arbetsbelastningar via Visual Studio Installer, som du kan öppna genom att välja Verktyg>Hämta verktyg och funktioner.
               
              
            
F#-projektfunktioner
Olika projekt- och objektmallar är tillgängliga för F# i Visual Studio. Följande bild visar några av F#-projektmallarna för .NET Core och .NET Standard:
               
              
            
Följande bild visar några av F#-objektmallarna:
               
              
            
Mer information om objektmallar för dataåtkomst finns i F#-typprovidrar.
I följande tabell sammanfattas funktioner i projektegenskaper för F#:
| Projektinställning | Stöds i F#? | Noteringar | 
|---|---|---|
| Resursfiler | Ja | |
| Skapa, felsöka och referensinställningar | Ja | |
| Flermålinriktning | Ja | |
| Ikon och manifest | Nej | Tillgänglig via kommandoradsalternativ för kompilatorn. | 
| ASP.NET Klienttjänster | Nej | |
| ClickOnce | Nej | Använd ett klientprojekt på ett annat .NET-språk, om tillämpligt. | 
| Stark namngivning | Nej | Tillgänglig via kommandoradsalternativ för kompilatorn. | 
| Publicering och versionshantering för sammansättning | Nej | |
| Kodanalys | Nej | Kodanalysverktyg kan köras manuellt eller som en del av ett kommando efter bygget. | 
| Säkerhet (ändra förtroendenivåer) | Nej | 
Projektdesigner
Project Designer består av flera projektegenskapssidor grupperade efter relaterade funktioner. De sidor som är tillgängliga för F#-projekt är mestadels en delmängd av dem som är tillgängliga för andra språk och beskrivs i följande tabell. Länkar finns på motsvarande C# -projektdesignersida .
| Project Designer-sida | Relaterade länkar | Beskrivning | 
|---|---|---|
| Ansökan | Programsida, Projektdesigner | Gör att du kan ange inställningar och egenskaper på programnivå, till exempel om du skapar ett bibliotek eller en körbar fil, vilken version av .NET programmets mål och information om var de resursfiler som programmet använder lagras. | 
| Skapa | Byggsida, Projektdesigner | Gör att du kan styra hur koden kompileras. | 
| Skapa händelser | Sidan Skapa händelser, Projektdesigner | Gör att du kan ange kommandon som ska köras före eller efter en kompilering. | 
| Felsökning | Felsökningssida, Project Designer | Gör att du kan styra hur programmet körs under felsökningen. Detta omfattar vilka kommandon som ska användas och vad programmets startkatalog är, och eventuella särskilda felsökningslägen som du vill aktivera, till exempel inbyggd kod och SQL. | 
| Paket (endast.NET SDK) | Inte tillgänglig | Gör att du kan definiera NuGet-paketmetadata när du publicerar som ett NuGet-paket. | 
| Referenssökvägar | Hantera referenser i ett projekt | Gör att du kan ange var du vill söka efter sammansättningar som koden är beroende av. | 
| Resurser (endast.NET SDK) | Inte tillgänglig | Gör att du kan generera och hantera en standardresursfil. | 
F#-specifika inställningar
I följande tabell sammanfattas inställningar som är specifika för F#:
| Project Designer-sida | Inställning | Beskrivning | 
|---|---|---|
| Skapa | Generera tail-anrop | Om du väljer det här alternativet kan du använda msil-instruktionen (Tail Microsoft Intermediate Language). Detta gör att stackramen återanvänds för rekursiva tail-funktioner. Motsvarar kompilatoralternativet --tailcalls. | 
| Skapa | Andra flaggor | Gör att du kan ange ytterligare kommandoradsalternativ för kompilatorn. | 
Kod- och textredigeringsfunktioner
Följande funktioner i Visual Studio-kod- och textredigerarna stöds i F#:
| Egenskap | Beskrivning | Stöds i F#? | 
|---|---|---|
| Kommentar automatiskt | Gör att du kan kommentera eller ta bort kommentarer i kodavsnitt. | Ja | 
| Formatera automatiskt | Formaterar om kod med standard indrag och formatmall. | Nej | 
| Bokmärken | Gör att du kan spara platser i redigeraren. | Ja | 
| Ändra indrag | Indrag eller unindents markerade rader. | Ja | 
| Smart indrag | Drar automatiskt in och av indrag markören enligt F#-omfångsregler. | Ja | 
| Sök efter och ersätt text | Gör att du kan söka i en fil, ett projekt eller en lösning och eventuellt ändra text. | Ja | 
| Gå till definition för .NET API | När markören är placerad på ett .NET-API visas kod som genererats från .NET-metadata. | Nej | 
| Gå till definition för användardefinierat API | När markören finns på en programentitet som du har definierat flyttar du markören till den plats i koden där entiteten har definierats. | Ja | 
| Gå till rad | Gör att du kan gå till en specifik rad i en fil, efter radnummer. | Ja | 
| Navigeringsfält överst i filen | Gör att du kan hoppa till platser i kod, till exempel funktionsnamn. | Ja | 
| Riktlinjer för blockstruktur | Visar riktlinjer som anger F#-omfång, som kan hovras över för en förhandsversion. | Ja | 
| Skisserar | Gör att du kan komprimera delar av koden för att skapa en mer kompakt vy. | Ja | 
| Tabify | Konverterar blanksteg till flikar. | Ja | 
| Typfärgning | Visar definierade typnamn i en särskild färg. | Ja | 
| Snabbsökning. Se Snabbsökning, Sök och Ersätt fönster. | Gör att du kan söka i en fil eller ett projekt. | Ja | 
| Ctrl+klicka för att gå till definition | Gör att du kan hålla ned Ctrl och klicka på en F#-symbol för att anropa Gå till definition. | Ja | 
| Gå till Definition från QuickInfo | Klickbara symboler i knappbeskrivningar som anropar Gå till definition. | Ja | 
| Gå till Alla | Aktiverar global, fuzzy-matchande navigering för alla F#-konstruktioner via Ctrl+T. | Ja | 
| Infogad byt namn | Byter namn på alla förekomster av en symbol infogad. | Ja | 
| Hitta alla referenser | Hittar alla förekomster av en symbol i en kodbas. | Ja | 
| Förenkla korrigering av namnkod | Tar bort onödiga kvalificerare för F#-symboler. | Ja | 
| Ta bort kodkorrigering för oanvänd openinstruktion | Tar bort alla onödiga openinstruktioner i ett dokument. | Ja | 
| Korrigering av oanvänd värdekod | Föreslår att du byter namn på en oanvänd identifierare till understreck. | Ja | 
Allmän information om redigering av kod i Visual Studio och funktioner i textredigeraren finns i Skriva kod i redigeraren.
IntelliSense-funktioner
I följande tabell sammanfattas IntelliSense-funktioner som stöds och stöds inte i F#:
| Egenskap | Beskrivning | Stöds i F#? | 
|---|---|---|
| Implementera automatiskt gränssnitt | Genererar kodstubbar för gränssnittsmetoder. | Ja | 
| Kodfragment | Matar in kod från ett bibliotek med vanliga kodkonstruktioner i ämnen. | Nej | 
| Fullständigt ord | Sparar skrivningen genom att fylla i ord och namn när du skriver. | Ja | 
| Automatisk slutförande | När det är aktiverat gör det att ordet slutförs så att det väljer den första matchningen när du skriver, i stället för att vänta på att du ska välja en eller trycka påCtrl-blanksteg+. | Ja | 
| Erbjudandet har slutförts för symboler i oöppnade namnområden | Med automatisk slutförande föreslås en matchande symbol som finns i ett oöppnat namnområde, som erbjuder att slutföra med motsvarande open-instruktion när den väljs. | Ja | 
| Generera kodelement | Gör att du kan generera stub-kod för en mängd olika konstruktioner. | Nej | 
| Lista medlemmar | När du skriver in medlemsåtkomstoperatorn (.) visas medlemmar för en typ. | Ja | 
| Ordna användningar/öppna | Ordnar namnområden som refereras med hjälp av instruktioner i C# eller öppna direktiv i F#. | Nej | 
| Parameterinformation | Visar användbar information om parametrar när du skriver ett funktionsanrop. | Ja | 
| Snabbinformation | Visar den fullständiga deklarationen för alla identifierare i koden. | Ja | 
| Automatisk klammerparentes | Slutför automatiskt F#-klammerparentesliknande syntaxkonstruktioner på ett transaktionellt sätt. | Ja | 
Allmän information om IntelliSense finns i Använda IntelliSense.
Felsökningsfunktioner
I följande tabell sammanfattas funktioner som är tillgängliga när du felsöker F#-kod:
| Egenskap | Beskrivning | Stöds i F#? | 
|---|---|---|
| Fönstret Autos | Visar automatiska eller tillfälliga variabler. | Nej | 
| Brytpunkter | Gör att du kan pausa kodkörningen vid specifika tidpunkter under felsökningen. | Ja | 
| Villkorsstyrda brytpunkter | Aktiverar brytpunkter som testar ett villkor som avgör om körningen ska pausas. | Ja | 
| Redigera och fortsätt | Gör att koden kan ändras och kompileras när du felsöker ett program som körs utan att stoppa och starta om felsökningsprogrammet. | Nej | 
| Uttrycksutvärdering | Utvärderar och kör kod vid körning. | Nej, men C#-uttrycksutvärderingen kan användas, även om du måste använda C#-syntax. | 
| Historisk felsökning | Gör att du kan gå in i kod som körts tidigare. | Ja | 
| Fönstret Locals (Lokal) | Visar lokalt definierade värden och variabler. | Ja | 
| Kör till markör | Gör att du kan köra kod tills raden som innehåller markören har nåtts. | Ja | 
| Stig in | Gör att du kan avancera körningen och flytta till valfritt funktionsanrop. | Ja | 
| Steg över | Gör att du kan avancera körningen i den aktuella stackramen och gå förbi valfritt funktionsanrop. | Ja | 
Allmän information om Visual Studio-felsökningsprogrammet finns i Felsökning i Visual Studio.
Ytterligare verktyg
I följande tabell sammanfattas stödet för F# i Visual Studio-verktyg.
| Verktyg | Beskrivning | Stöds i F#? | 
|---|---|---|
| Anropshierarki | Visar den kapslade strukturen för funktionsanrop i koden. | Nej | 
| Kodmått | Samlar in information om din kod, till exempel antal rader. | Nej | 
| Klassvy | Ger en typbaserad vy av koden i ett projekt. | Nej | 
| Fellistafönster | Visar en lista över fel i kod. | Ja | 
| interaktiv | Gör att du kan skriva (eller kopiera och klistra in) F#-kod och köra den direkt, oberoende av projektets byggnad. Det interaktiva F#-fönstret är en REPL (Read, Evaluate, Print Loop). | Ja | 
| Objektwebbläsare | Gör att du kan visa typerna i en sammansättning. | F#-typer som de visas i kompilerade sammansättningar visas inte exakt som du skapar dem. Du kan bläddra igenom den kompilerade representationen av F#-typer, men du kan inte visa typerna som de visas från F#. | 
| Utdatafönster | Visar byggutdata. | Ja | 
| Prestandaanalys | Innehåller verktyg för att mäta kodens prestanda. | Ja | 
| Egenskapsfönster | Visar och aktiverar redigering av egenskaperna för objektet i utvecklingsmiljön som har fokus. | Ja | 
| Server Explorer | Tillhandahåller sätt att interagera med en mängd olika serverresurser. | Ja | 
| Solution Explorer | Gör att du kan visa och hantera projekt och filer. | Ja | 
| Uppgiftslista | Gör att du kan hantera arbetsobjekt som hör till koden. | Nej | 
| Testa projekt | Innehåller funktioner som hjälper dig att testa koden. | Nej | 
| Verktygslåda | Visar flikar som innehåller dragna objekt, till exempel kontroller och delar av text eller kod. | Ja |