The Visual F# compiler and tools
F# C# Visual Basic Perl Batchfile Shell Other
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.nuget move NuGet.Config to the root Feb 23, 2018
.vscode Port build.cmd to (#2497) Feb 28, 2017
artifacts Implement Proposal B:… May 25, 2017
build [WIP] --- rework msbuild dependencies (#5425) Aug 2, 2018
fcs A few more ignores (#5328) Jul 12, 2018
mono fix mono build/install Jun 13, 2018
scripts Fix the Mono and OSX builds (#4273) Jan 29, 2018
setup [WIP] --- rework msbuild dependencies (#5425) Aug 2, 2018
src Always do TFM Attributes at front of compile list (#5511) Aug 16, 2018
tests End-2-end tests (#5462) Aug 6, 2018
vsintegration Fix # 5514 (#5516) Aug 16, 2018
.gitattributes [WIP] simplify mono build (#4358) Feb 17, 2018
.gitignore split swix packages into *.Compiler and *.IDE May 29, 2018
.vsts-pr.yaml rename YAML build definitions Jul 31, 2018
.vsts-signed.yaml remove unnecessary build step Aug 11, 2018
BuildToolsVersion.txt Enable Build/CI with Mono (#1703) Nov 6, 2016 Test CI after #4392 Feb 24, 2018 Create Sep 16, 2017 Remove a duplicated sentence (#5320) Jul 10, 2018 Add instructions for cloning and debugging (#5276) Jul 2, 2018
DotnetCLIToolsVersion.txt [WIP] --- rework msbuild dependencies (#5425) Aug 2, 2018
DotnetCLIVersion.txt Update build tools to latest (#1651) Oct 25, 2016
FSharp.Directory.Build.props Add end to end tests (#4671) Apr 5, 2018
FSharp.Directory.Build.targets Add end to end tests (#4671) Apr 5, 2018
FSharp.sln update relative to fsharpqa tests (#5160) Jul 13, 2018
FSharpBuild.Directory.Build.props add more SDK props/targets overrides (#5123) Jun 6, 2018
FSharpBuild.Directory.Build.targets preserve directory structure when recursively copying files Jul 24, 2018
FSharpTests.Directory.Build.props Add end to end tests (#4671) Apr 5, 2018
FSharpTests.Directory.Build.targets remove DiaSymReader package dependencies since they're not used Apr 18, 2018 Suggest to attach a zip in issue template (#3478) Aug 21, 2017
License.txt Adopt the MIT License (#3517) Aug 31, 2017
Makefile move NuGet.Config to the root Feb 23, 2018
NuGet.Config directly consume the VS editor's QuickInfo APIs Apr 4, 2018
PublishToBlob.proj Publish packages under teh configruation dir (#4776) Apr 24, 2018 report VSTS CI badges (#5412) Jul 28, 2018
RoslynPackageVersion.txt Fixes #1559 --- Ensure that Legacy Project System Consistently sets S… Jul 11, 2018 update relative to fsharpqa tests (#5160) Jul 13, 2018
VisualFSharp.sln Enable more VS IDE unit tests (#5242) Jul 3, 2018 Update (#3490) Aug 23, 2017
build-everything.proj Enable more VS IDE unit tests (#5242) Jul 3, 2018
build-nuget-packages.proj build nuget packages after signing (#4269) Jan 27, 2018
build.cmd Remove a ton of build warnings (#5483) Aug 9, 2018 Merge remote-tracking branch 'upstream/dev15.6' into merges/dev15.6-t… Mar 5, 2018
init-tools.cmd ensure the expected dotnet CLI is actually present Nov 20, 2017 Build proto using dotnet cli (#3232) Jun 21, 2017
packages.config [WIP] --- rework msbuild dependencies (#5425) Aug 2, 2018
verify-translations.cmd add manual helper script to verify all translations Feb 8, 2018

The F# Language, Library, and Visual F# Tools Repository

You are invited to help produce future releases of the F# language compiler, library, and tools. This repository enables development on Linux, macOS and Windows, along with some automated CI testing for these.

The F# Compiler and Tools are also mirrored in the corresponding repository of the F# Software Foundation.

Changes contributed here are eventually propagated to this repository and are included in all packagings of F# and open source F# editing tools. The process for doing this is explained in this guide by the F# Core Engineering Group. Currently, the F# community coordinates packaging other editions of F# for use on Linux, macOS, Android, iOS, and other platforms, and Microsoft coordinates packaging this repository as part of the Visual F# Tools.

For historical reasons this repository is called "visualfsharp" and currently also contains the Visual F# IDE Tools. The eventual plan is to split these repositories into "fsharp" and "visualfsharp".

Build Status

Branch Status
master Build Status
dev15.9 Build Status
dev16.0 Build Status

Help improve the Quality of the Tools by Using the Nightly Releases of Visual F# Tools

To setup Visual Studio to use the latest nightly releases of the Visual F# Tools:


See and for details on build, development, and testing.

See for general guidelines on the contribution process, also how we label issues and PRs

To contribute to the F# ecosystem more generally see the F# Software Foundation's Community Projects pages.


These are the branches in use:

  • master = Latest branch for OSS developers and nightly users.

    • Most contributions go here.
    • Able to be built, installed and used in the latest public Visual Studio release.
    • May contain updated F# features and logic.
    • Used to build nightly VSIX (see above).
    • Gets integrated into to form the basis of Mono releases
    • Gets integrated into to form the basis of FSharp.Compiler.Service releases
  • dev15.x

    • Latest release branch for the particular point release of Visual Studio.
    • Incorporates features and fixes from master up to a particular branch point, then selective cherry-picks.
    • May contain new features that depend on new things or fixes in the corresponding Visual Studio release.
    • Gets integrated back into master once the corresponding Visual Studio release is made.
    • Used to build Visual F# Tool updates

Technical Documentation


This project is subject to the MIT License. A copy of this license can be found in License.txt at the root of this repo.


For typical installs of F#, see

Using Nightly Releases of Visual F# Tools

To setup Visual Studio to use the latest nightly releases of the Visual F# Tools:

If you wish to set up a Preview nightly atop Visual Studio preview builds, you can either download a VSIX Manually from here or set up a VSIX feed in visual studio from here.

Using CI Builds

To install F#, see

To download the bits for the latest CI builds see these instructions. This includes and ZIPs containing the F# compiler and VSIX installers for the Visual F# IDE Tools.

Using F# on a build server or computer without an F# installation

If you wish to use the latest F# compiler on a computer without Visual Studio 2017 installed, you can add the nuget package FSharp.Compiler.Tools to your projects. This will replace the in-box compiler with the version contained in the package. The actual package is built in

You will need to adjust the targets reference on your project file to use the targets file from the installed FSharp.Compiler.Tools package. See for how to modify your project file.

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. This code of conduct has been adopted by many other projects. For more information see the Code of conduct.

Get In Touch

Follow @VisualFSharp and @fsharporg on twitter and subscribe to the .NET Blog.

Members of the F# Software Foundation can be invited to the "F# Software Foundation" discussion rooms on slack. More details at