简而言之,问题在于,虽然我的机器上安装了 Mono,但我没有 DNX Mono。通过本地 DNVM 安装它(dnvm upgrade -r mono
)解决了这个问题,现在我在 Visual Studio Code 中获得了很好的 IntelliSense 支持。
现在说来话长。
Visual Studio Code 使用OmniSharp提供 IntelliSense 支持。OmniSharp 是一组工具,可通过在您的机器上运行的基于 Nancy 的 Web API 提供 C# 代码分析服务(此处和此处的精彩帖子)。
我没有得到任何 IntelliSense,因为 OmniSharp 运行时出现错误,如果我更加注意 Visual Studio 代码输出窗口(Cmd+L
L
在 Mac 上),我很容易发现这些错误。OmniSharp 日志(见下文)显示它尝试使用dnx-mono.1.0.0-rc1-update1
运行时,然后抛出异常,因为它不存在。
据我了解,OmniSharp 不能使用 DNX CoreCLR(因为它不支持套接字?)并且需要 DNX Mono 才能运行。在此处的 VS Code GitHub 存储库中对此主题进行了一些讨论。
运行dnvm upgrade -r mono
并重新启动 Visual Studio Code 解决了这个问题。我的 DNVM 设置现在如下所示:
![在此处输入图像描述](https://i.stack.imgur.com/dZCPu.png)
请注意,您不必为了让 IntelliSense 工作而使用 DNX Mono 进行开发。你只需要安装它。
OmniSharp 日志
[INFO] 在 APP_PATH 启动 OmniSharp...
[信息] 从“/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/jrieken.vscode-omnisharp/bin/omnisharp”启动 OmniSharp,进程 ID 为 34893...
[信息:OmniSharp.Startup] Omnisharp 服务器使用 stdio 在主机 34884 上的位置 APP_PATH 运行。
[INFORMATION:OmniSharp.Dnx.DnxProjectSystem] 扫描 DNX 项目的 APP_PATH
[信息:OmniSharp.Dnx.DnxPaths] 使用运行时“/Users/nsamteladze/.dnx/runtimes/dnx-coreclr-darwin-x64.1.0.0-rc1-update1”。
[信息:OmniSharp.Dnx.DnxProjectSystem] 找到项目 APP_PATH/project.json。
[信息:OmniSharp.Dnx.DesignTimeHostManager] 使用“/Users/nsamteladze/.dnx/runtimes/dnx-mono.1.0.0-rc1-update1”作为设计时主机。
[错误:OmniSharp.Startup] 项目系统“DnxProjectSystem”引发异常。System.InvalidOperationException: 文件名尚未设置在 System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in :0 at System.Diagnostics.Process.Start () [ 0x00000] in :0 at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start () at OmniSharp.Dnx.DesignTimeHostManager.Start (System.String hostId, System.Action`1 onConnected) [0x00000] in :0 在 OmniSharp.Dnx.DnxProjectSystem.Initalize (IConfiguration 配置) [0x00000] 在 OmniSharp.Startup.Configure (IApplicationBuilder 应用程序, IServiceProvider serviceProvider, ILibraryManager manager, IOmnisharpEnvironment env, ILoggerFactory loggerFactory, ISharedTextWriter writer,
[INFORMATION:OmniSharp.MSBuild.MSBuildProjectSystem] 在 APP_PATH 中找不到解决方案文件
[信息:OmniSharp.ScriptCs.ScriptCsProjectSystem] 检测 APP_PATH 中的 CSX 文件。
[信息:OmniSharp.ScriptCs.ScriptCsProjectSystem] 找不到任何 CSX 文件
[INFORMATION:OmniSharp.Startup] 解决方案已完成加载