IntelliSense在Mac上的Visual Studio代码中不起作用

我正在使用Visual Studio Code在Mac上开发ASP.NET 5应用程序。 我遇到的问题是,除了我之前输入的方法和变量名称的简单自动完成之外,我没有获得任何IntelliSense支持(例如可用的类方法)。

该应用针对DNX Core 5.0:

"frameworks": { "dnxcore50": { } }, 

我通过DNVM安装了CoreCLR 1.0.0-rc1-update1:

$ dnvm列表

活动版本运行时体系结构OperatingSystem别名

—— ——- ——- ———— ————— — –

  • 1.0.0-rc1-update1 coreclr x64 darwin默认值

我尝试了以下方法来解决这个问题,但没有运气:

  • 确保选择了一个项目(右下角的火图标)
  • settings.json明确转向了建议

     { "editor.quickSuggestions": true` } 

任何建议将不胜感激。

简而言之,问题是,当我在我的机器上安装了Mono时,我没有DNX Mono。 通过本地dnvm upgrade -r mono安装它( dnvm upgrade -r mono )解决了这个问题,现在我在Visual Studio Code中获得了很好的IntelliSense支持。

现在是漫长的故事。

Visual Studio Code使用OmniSharp提供IntelliSense支持。 OmniSharp是一组工具,通过在您的计算机上运行的基于Nancy的Web API提供C#代码分析服务( 此处和此处都有很棒的post)。

我没有得到任何智能感知,因为OmniSharp运行时出现错误,如果我更加关注Visual Studio代码输出窗口(Mac上的Cmd+L L ),我可能很容易被捕获。 OmniSharp Log(见下文)显示它尝试使用dnx-mono.1.0.0-rc1-update1运行时,然后抛出exception,因为它不存在。

根据我的理解,OmniSharp不能使用DNX CoreCLR( 因为它不支持套接字? )并且需要DNX Mono才能运行。 在VS Code GitHub repo中有关于此主题的讨论。

运行dnvm upgrade -r mono并重新启动Visual Studio Code修复了该问题。 我的DNVM设置现在看起来像这样: 在此处输入图像描述

请注意,您无需使用DNX Mono进行开发即可使IntelliSense正常工作。 你只需要安装它。

OmniSharp日志

[INFO]在APP_PATH启动OmniSharp …

[INFO]从’/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/jrieken.vscode-omnisharp/bin/omnisharp’启动OmniSharp,进程号为34893 …

[信息:OmniSharp.Startup] Omnisharp服务器在主机34884上的位置APP_PATH使用stdio运行。

[信息:OmniSharp.Dnx.DnxProjectSystem]为DNX项目扫描APP_PATH

[INFORMATION: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’引发了exception。 System.InvalidOperationException:尚未在System.Diagnostics.Process.Start()中的System.Diagnostics.Process.Start_common(System.Diagnostics.ProcessStartInfo startInfo,System.Diagnostics.Process进程)[0x00000]中设置文件名:0 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] in:0 at OmniSharp.Startup.Configure(IApplicationBuilder app,IServiceProvider serviceProvider,ILibraryManager manager,IOmnisharpEnvironment env,ILoggerFactory loggerFactory,ISharedTextWriter writer,IOptions’1 optionsAccessor) [0x00000] in:0

[信息:OmniSharp.MSBuild.MSBuildProjectSystem]在APP_PATH中找不到解决方案文件

[INFORMATION:OmniSharp.ScriptCs.ScriptCsProjectSystem]检测APP_PATH中的CSX文件。

[信息:OmniSharp.ScriptCs.ScriptCsProjectSystem]找不到任何CSX文件

[INFORMATION:OmniSharp.Startup]解决方案已完成加载