The Visual F# compiler and tools
Switch branches/tags
Clone or download
forki and dsyme Cleanup checkTypeDef (#4981)
* Cleanup checkTypeDef

* Use error recovery for hidden

* Return early
Latest commit 1105511 Oct 18, 2018
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 Fix master CI (#5564) Sep 5, 2018
fcs Update FSharp.Core in FCS (#5718) Oct 2, 2018
mono fix mono build/install Jun 13, 2018
scripts Fix the Mono and OSX builds (#4273) Jan 29, 2018
setup Rename output overrides file (#5663) Sep 18, 2018
src Cleanup checkTypeDef (#4981) Oct 18, 2018
tests Remove one "impossible" error (#5746) Oct 15, 2018
vsintegration Reformat indentation on paste (#4702) Oct 17, 2018
.gitattributes [WIP] simplify mono build (#4358) Feb 17, 2018
.gitignore split swix packages into *.Compiler and *.IDE May 29, 2018
.vsts-pr.yaml update yaml syntax to conform to new standards Oct 10, 2018
.vsts-signed.yaml update yaml syntax to conform to new standards Oct 10, 2018
BuildToolsVersion.txt Enable Build/CI with Mono (#1703) Nov 6, 2016 Create Sep 16, 2017 Remove a duplicated sentence (#5320) Jul 10, 2018 Update (#5741) Oct 5, 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 Fix project loading in VisualFSharp and FSharp solutions (#5651) Sep 17, 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 Merge master to dev15.8 (#4749) Apr 20, 2018 Suggest to attach a zip in issue template (#3478) Aug 21, 2017
License.txt Adopt the MIT License (#3517) Aug 31, 2017
Makefile Fix project loading in VisualFSharp and FSharp solutions (#5651) Sep 17, 2018
NuGet.Config Update SCI, SRM to the latest RTM packages Jun 12, 2018
PublishToBlob.proj Publish packages under teh configruation dir (#4776) Apr 24, 2018 update build status links Sep 6, 2018
RoslynPackageVersion.txt Rev'ed Roslyn package version to fix glyph tags Aug 9, 2018 Fix typo (#5732) Oct 4, 2018
VisualFSharp.sln Fix #5027: Set VisualFsharpFull VSIX to be default startup project on… Oct 1, 2018 Update (#3490) Aug 23, 2017
build-everything.proj Fix project loading in VisualFSharp and FSharp solutions (#5651) Sep 17, 2018
build-nuget-packages.proj build nuget packages after signing (#4269) Jan 27, 2018
build.cmd Reformat indentation on paste (#4702) Oct 17, 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 Fix master CI (#5564) Sep 5, 2018 Update Sep 23, 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