Make things easy for yourself and start by running posh as admin
If you already have dnvm installed remember to run update-self if you haven't recently
Clone and checkout the coreclr branch of Kevin Ransom's Fork of the Visual F# Compiler and Tools
You need DNVM as a starting point. DNVM enables you to acquire a (or multiple) .NET Execution Environment (DNX). DNVM is simply a script, which doesn't depend on .NET. You can install it via a PowerShell command. You can find alternate DNVM install instructions at the ASP.NET Home repo.
λ» @powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"
You must close your command-prompt and start a new one in order for the user-wide environment variables to take effect.
You can see the currently installed DNX versions with dnvm list, which will display an empty set of installed runtimes.
λ» dnvm list
It's easy to install the latest .NET Core-based DNX, using the dnvm install command. The -u (or -Unstable) parameter installs latest unstable version.
λ» dnvm install -r coreclr latest -u
This will install the 32-bit version of .NET Core. If you want the 64-bit version, you can specify processor architecture:
λ» dnvm install -r coreclr -arch x64 latest -u
You can see the currently installed DNX versions with dnvm list (your display may vary as new versions of the DNX are published):
λ» dnvm list
Active Version Runtime Architecture Location Alias
------ ------- ------- ------------ -------- -----
1.0.0-beta8-15736 coreclr x64 C:\Users\Jared\.dnx\runtimes
1.0.0-beta8-15736 coreclr x86 C:\Users\Jared\.dnx\runtimes
You can choose which of these DNXs you want to use with dnvm use, with similar arguments.
λ» dnvm use -r coreclr -arch x64 1.0.0-beta8-15736
Adding C:\Users\Jared\.dnx\runtimes\dnx-coreclr-win-x64.1.0.0-beta8-15736\bin to process PATH
λ» dnvm list
Active Version Runtime Architecture Location Alias
------ ------- ------- ------------ -------- -----
* 1.0.0-beta8-15736 coreclr x64 C:\Users\Jared\.dnx\runtimes
1.0.0-beta8-15736 coreclr x86 C:\Users\Jared\.dnx\runtimes
While in the directory you've cloned the visualfsharp repo to ( e.g. C:\Users\Jared\Github\fs-coreclr\visualfsharp )
fetch the DotNet buildtools using:
λ» .nuget\NuGet.exe restore packages.config -PackagesDirectory packages
If you have not added MSBuild to your PATH you add the dir
C:\Program Files (x86)\MSBuild\14.0\Bin
To build and pull in the corefx assemblies for nuget build coreclr using this command:
// For Debug
λ» msbuild src\fsharp\FSharp.Core\FSharp.Core.fsproj /p:TargetFramework=coreclr /t:Rebuild /p:RestorePackages=true
// For Release
λ» msbuild src\fsharp\FSharp.Core\FSharp.Core.fsproj /p:TargetFramework=coreclr /t:Rebuild /p:RestorePackages=true /p:Configuration=Release
otherwise build fsharp.core like this:
// For Debug
λ» msbuild src\fsharp\FSharp.Core\FSharp.Core.fsproj /p:TargetFramework=coreclr
// For Release
λ» msbuild src\fsharp\FSharp.Core\FSharp.Core.fsproj /p:TargetFramework=coreclr /p:Configuration=Release
then build the compiler with the command:
// For Debug
λ» msbuild src/fsharp-compiler-build.proj /p:TargetFramework=coreclr /t:Rebuild /p:RestorePackages=true
// For Release
λ» msbuild src/fsharp-compiler-build.proj /p:TargetFramework=coreclr /t:Rebuild /p:RestorePackages=true /p:Configuration=Release
Partially possible to reproduce it on Linux (Ubuntu 14.04 x86_64 with Mono official apt/deb packages):
3.1) Eg.:
3.2) Add the content to /usr/local/stow/msbuild/bin/msbuild
5.1) Bootstrap compiler?
The file exists:
But MSBuild cannot find it:
5.2) Missing bootstrap compiler