我正在使用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本地安装它(dnvm upgrade -r mono
)解决了这个问题,现在我在Visual Studio Code中获得了很好的IntelliSense支持.
现在是漫长的故事.
Visual Studio Code使用OmniSharp提供IntelliSense支持.OmniSharp是一组工具,通过在您的计算机上运行的基于Nancy的Web API提供C#代码分析服务(此处和此处都有很棒的帖子).
我没有得到任何智能感知,因为OmniSharp运行时出现错误,如果我更加关注Visual Studio代码输出窗口(Cmd+L
L
在Mac上),我很容易就会发现错误.OmniSharp Log(见下文)显示它尝试使用dnx-mono.1.0.0-rc1-update1
运行时然后抛出异常,因为它不在那里.
根据我的理解,OmniSharp不能使用DNX CoreCLR(因为它不支持套接字?)并且需要DNX Mono才能运行.在VS Code GitHub repo中有关于此主题的讨论.
运行dnvm upgrade -r mono
并重新启动Visual Studio代码修复了该问题.我的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'引发了异常.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文件.
[INFORMATION:OmniSharp.ScriptCs.ScriptCsProjectSystem]找不到任何CSX文件
[INFORMATION:OmniSharp.Startup]解决方案已完成加载