我正在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失败,退出代码1工作目录:
'/Users/francois-guillaume.rideau/Documents/FsharpVsCode/TestProject1'
Exe路径:“dotnet” Args:“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
最佳答案
VS Code环境在调用时会传递给msbuild,因此在启动VS Code时设置环境变量就可以了:FrameworkPathOverride=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/ code .
关于f# - Mac OS上的VS Code的F#(单声道):错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47027898/