anchor.diff:  
   type DotnetOptions =
       {
  -        /// Path to dotnet.exe
  -        ToolPath: string;
  +        /// Dotnet cli install directory
  +        DotnetDirectory: string;
           /// Command working directory
           WorkingDirectory: string;
       }
   
       static member Default = {
  -        ToolPath = dotnetCliPath
  +        DotnetDirectory = DefaultDotnetCliDir
           WorkingDirectory = currentDirectory
       }
   
  
positive.code: /// Dotnet cli installer script
  let private dotnetCliInstaller = "https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/install.ps1"
  
  /// Dotnet cli install directory
  let private dotnetCliInstallDir = environVar "LocalAppData" @@ "Microsoft" @@ "dotnet"
  
  // Dotnet cli executable path
  let private dotnetCliPath = dotnetCliInstallDir @@ "cli" @@ "bin" @@ "dotnet.exe"
  
  // Temporary path of installer script
  let private tempInstallerScript = Path.GetTempPath() @@ "dotnet_install.ps1"
  
negative.code:             | true -> downloadInstaller tempInstallerScript
              | false -> tempInstallerScript
  
      // set custom install directory
      if param.InstallDirectory.IsSome then
          setEnvironVar "DOTNET_INSTALL_DIR" param.InstallDirectory.Value
  
      let args = sprintf "-NoProfile -NoLogo -Command \"%s %s; exit $LastExitCode;\"" installScript (buildDotnetCliInstallArgs param)
      let exitCode = 
          ExecProcess (fun info ->
  