Skip to content

F# .NET Setup Guide — Install .NET SDK and F# Interactive

DodaTech Updated 2026-06-28 1 min read

In this tutorial, you will learn about F# .NET Setup Guide. We cover key concepts, practical examples, and best practices to help you master this topic.

F# setup uses the .NET SDK to provide compilation, interactive scripting with dotnet fsi, project templates, and cross-platform support on Windows, macOS, and Linux through a single toolchain.

Installing .NET SDK

# Linux (Ubuntu/Debian)
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh

# macOS
brew install dotnet-sdk

# Windows - Download from dotnet.microsoft.com

# Verify
dotnet --version
dotnet --list-sdks

Your First F# Program

// hello.fsx
printfn "Hello, F#!"
let name = "World"
printfn "Hello, %s!" name
dotnet fsi hello.fsx
# Hello, F#!
# Hello, World!

Creating a Project

# Create new F# console app
dotnet new console -lang F# -n MyApp
cd MyApp

# Run
dotnet run

# Build
dotnet build

# Test
dotnet test

F# Interactive (FSI)

// Running in dotnet fsi:
> let x = 42;;
val x : int = 42

> printfn "%d" x;;
42
val it : unit = ()

> #help;;  // list directives

Editor Setup

VS Code with Ionide extension provides the best F# experience. Features include syntax highlighting, type hints, code completion, and FSI integration.

Common Mistakes

1. Using .fsx vs .fs

.fsx is for scripts (no compile step). .fs is for compiled projects.

2. Forgetting dotnet fsi

Run scripts with dotnet fsi script.fsx, not dotnet run.

3. Not installing Ionide

Without Ionide, VS Code has minimal F# support. Install the Ionide extension pack.

FAQ

{{< faq question="Do I need Mono for F#?" >}} No. .NET SDK (6+) includes F# support. Mono is only needed for legacy projects. {{< /faq >}}

{{< faq question="What is the difference between dotnet fsi and fsharpi?" >}} dotnet fsi is for .NET Core/5+. fsharpi is for Mono. Use dotnet fsi. {{< /faq >}}

{{< faq question="Can I use F# on Linux?" >}} Yes. .NET is fully cross-platform. F# works identically on Windows, macOS, and Linux. {{< /faq >}}

What's Next

Now learn about F# let bindings and immutability.

Topic Description Link
Let Bindings Variables and scoping {{< ref "03-let-bindings" >}}
Functions Pipes and composition {{< ref "04-functions" >}}

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro