【问题标题】:How setup Visual Studio Code for Run/Debug of F# projects/scripts?如何设置 Visual Studio Code 以运行/调试 F# 项目/脚本?
【发布时间】:2016-04-04 13:08:12
【问题描述】:

我尝试使用 Visual Studio Code 运行一个简单的 F# 脚本。

我今天下载所有最新版本。我将所有插件安装在http://ionide.io/。尽管有漂亮的动画 gif 表明它可以工作,但我无法看到 make 如何工作代码的构建。

我创建了一个 .ionide 文件:

[Fake]
linuxPrefix = "mono"
command = "build.cmd"
build = "build.fsx"

那么,如何安装 Fake?所以,我从 xamarin 执行此操作并安装它。好的,现在我得到了 build.fsx:

#r "packages/FAKE.4.12.0/tools/FakeLib.dll" // include Fake lib
RestorePackages()

// Properties
let buildDir = "./build/"
let testDir  = "./test/"
let deployDir = "./deploy/"

// version info
let version = "0.2"  // or retrieve from CI server

// Targets
Target "Clean" (fun _ ->
    CleanDirs [buildDir; testDir; deployDir]
)

Target "fakeBuild" (fun _ ->
!! "./*.fsproj"
    |> MSBuildRelease buildDir "Build"
    |> Log "AppBuild-Output: "
)

Target "Default" (fun _ ->
    trace "Hello World from FAKE"
)

// Dependencies
"Clean"
==> "fakeBuild"
==> "Default"

// start build
RunTargetOrDefault "Default"

运行 Fake:Build 命令并获取:

No handler found for the command: 'fake.fakeBuild'. Ensure there is an activation event defined, if you are an extension.

现在迷路了。

【问题讨论】:

    标签: macos f# osx-elcapitan visual-studio-code


    【解决方案1】:

    执行此操作的常用方法是使用 bash 脚本来调用您的 F# 脚本。您的 bash 脚本应该类似于:

    #!/bin/bash
    if test "$OS" = "Windows_NT"
    then # For Windows
        .paket/paket.bootstrapper.exe
        exit_code=$?
        if [ $exit_code -ne 0 ]; then
            exit $exit_code
        fi
        .paket/paket.exe restore
        exit_code=$?
        if [ $exit_code -ne 0 ]; then
            exit $exit_code
        fi
        packages/FAKE/tools/FAKE.exe $@ --fsiargs build.fsx
    else #For non Windows
        mono .paket/paket.bootstrapper.exe
        exit_code=$?
        if [ $exit_code -ne 0 ]; then
            exit $exit_code
        fi
        mono .paket/paket.exe restore
        exit_code=$?
        if [ $exit_code -ne 0 ]; then
            exit $exit_code
        fi
        mono packages/FAKE/tools/FAKE.exe $@ --fsiargs build.fsx
    fi
    

    现在,您可以在 build.fsx 脚本中定义构建步骤

    #r "packages/FAKE/tools/FakeLib.dll"
    
    open Fake
    
    // Targets
    // Dependencies
    // Default target
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      安装 yeoman: ">ext install yeoman" 然后用 >yo 建立一个独立的项目 并按照说明对 paket 和 FAKE 说“是”。

      然后 >paket 初始化 和 >paket install 它应该可以工作。

      获取 > 使用 ctrl+shift+p

      对于 Atom IDE,您还必须安装我在这里描述的 yeoman npm 包:http://www.implementingeventsourcingwithfsharp.com/?p=61

      这里描述了如何安装包:https://www.npmjs.com/package/generator-fsharp

      不确定 Visual Studio Code 是否需要它

      希望对你有帮助

      【讨论】:

        【解决方案3】:

        我让它工作了。

        也就是说,我几乎和你一样迷茫,可用的文档不是很完整的 IMO。这是你必须做的(你标记了 osx-elcapitan,所以我假设 OS X):

        • 删除 .ionide 文件,只有在您不想使用默认值时才需要它。让我们暂时保持默认设置以保持简单。

        • 确保 FakeLib.dll 的路径在您的 build.fsx

        • 中正确无误
        • 使用以下脚本创建一个名为 build.sh 的文件(确保 FAKE.exe 的路径正确):

          单声道包/FAKE.4.12.0/tools/FAKE.exe build.fsx $@

        • 如果再次失败,发布输出错误(点击顶部的 OPEN 按钮获取 FAKE 命令)

        PS:你的问题是两个月前的问题,所以如果你已经知道这一切,我很抱歉。

        【讨论】:

          猜你喜欢
          • 2021-02-09
          • 2022-10-22
          • 2023-03-11
          • 1970-01-01
          • 2021-03-05
          • 1970-01-01
          • 2018-08-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多