【问题标题】:F# (mono) for VS Code on MacOS : bugsF#(单声道)用于 MacOS 上的 VS Code:错误
【发布时间】:2017-10-31 04:27:29
【问题描述】:

我正在尝试在 MacOS (Sierra 10.12.6) 上使用 F# 和 VS Code (v1.17.2) 我想我已经安装了最新版本的 Mono 和 .NET SDK

我正在尝试构建此处描述的简单项目作为测试 https://github.com/s952163/FSharpVSCode

默认安装后,我可以进行 MSBuild 并在终端中运行该程序,没有任何问题。然而在那个阶段, (1) Intellisense 无法正常工作,无法识别 Deedle (2) 在 F# 资源管理器中它会说 'TestProject1.fsproj(加载失败) 右键单击时出现此错误

错误:MSBuild 失败,exitCode 1 工作目录: '/Users/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1' exe路径:'dotnet'参数:'msbuild /Users/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1/TestProject1.fsproj /p:SkipCompilerExecution=true /p:ProvideCommandLineArgs=true /p:CopyBuildOutputToOutputDirectory=false /p:UseCommonOutputDirectory=true /t:_Inspect_FscArgs /p:_Inspect_FscArgs_OutFile=/var/folders/gm/z065gk616xg6g0xgn4c7_bvc0000gn/T/tmp52c377ed.tmp.FscArgs.txt /p:DesignTimeBuild=true /t:_Inspect_GetResolvedProjectReferences /p:_Inspect_GetResolvedProjectReferences_OutFile=/var/folders/gm/z065gk616xg6g0xgn4c7_bvc0000gn/T/tmpfe4a2c2.tmp.GetResolvedProjectReferences.txt /t:_Inspect_GetProperties /p:_Inspect_GetProperties_OutFile=/var/folders/gm/z065gk616xg6g0xgn4c7_bvc0000gn/T/tmpfe4a2c2.tmp.GetProperties.txt /nologo /verbosity:quiet' 日志:将帮助程序目标文件写入 '/Users/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1/obj/TestProject1.fsproj.proj-info.targets' /usr/local/share/dotnet/sdk/2.0.2/Microsoft.Common.CurrentVersion.targets(1122,5): 错误 MSB3644:框架的参考程序集 未找到“.NETFramework,Version=v4.6.1”。为了解决这个问题, 为此框架版本安装 SDK 或 Targeting Pack,或 将您的应用程序重新定位到您所针对的框架版本 已安装 SDK 或 Targeting Pack。请注意,程序集将是 从全局程序集缓存 (GAC) 中解析,并将用于 参考组件的位置。因此您的程序集可能不是 正确地针对您想要的框架。 [/Users/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1/TestProject1.fsproj]

为了解决这个问题,我输入了以下内容

export FrameworkPathOverride=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/

但更糟糕的是,在那之后,项目不再在 VS Code 中构建,因为我在尝试(Cmd-Shift-P) MSBuild: Build Project 时得到了这个输出

/usr/local/share/dotnet/sdk/2.0.2/Microsoft.Common.CurrentVersion.targets(1122,5):错误 MSB3644:框架“.NETFramework,Version=v4.6.1”的参考程序集是未找到。要解决此问题,请为此框架版本安装 SDK 或 Targeting Pack,或者将您的应用程序重新定位到已安装 SDK 或 Targeting Pack 的框架版本。请注意,程序集将从全局程序集缓存 (GAC) 中解析,并将用于代替引用程序集。因此,您的程序集可能无法正确定位于您想要的框架。 [/Users/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1/TestProject1.fsproj]

截图在这里https://imgur.com/KtMM2Bu

【问题讨论】:

    标签: f# msbuild mono visual-studio-code ionide


    【解决方案1】:

    VS Code 环境在调用时传递给 msbuild,因此在 VS Code 启动时设置环境变量就可以了:

    FrameworkPathOverride=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/ code .

    【讨论】:

    • 我对此并不熟悉。我该怎么做?这不是我在上面写的export...
    【解决方案2】:

    转到终端中的项目位置,然后如前所述运行FrameworkPathOverride=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/ code .

    那么你应该可以再次构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多