【问题标题】:MacOS OmniSharp and vscode timeout errrorMacOS OmniSharp 在 vs 代码超时错误
【发布时间】:2017-06-22 11:52:29
【问题描述】:

今天早上我开始使用 vscode(1.13.1) 并想用 C# (dotnet core) 编写代码。但我得到了同样的错误,你可以在谷歌中找到,但在当前版本的 OmniSharp 中。 Omnisharp 正确地看到了我的项目,但没有启动。在 OmniaSharp 日志中是这样的:

OmniSharp server started wth Mono
Path: /Users/petrtomasek/.vscode/extensions/ms-vscode.csharp-1.10.0/bin/run
PID: 1351

OmniSharp: -s /Users/petrtomasek/Projects/CestujnakoleNew --hostPID 1267 --stdio DotNet:enablePackageRestore=false --encoding utf-8 --loglevel information formattingOptions:useTabs=false formattingOptions:tabSize=4 formattingOptions:indentationSize=4
{"Event":"log","Body":{"LogLevel":"INFORMATION","Name":"OmniSharp.Startup","Message":"Omnisharp server running using Stdio at location '/Users/petrtomasek/Projects/CestujnakoleNew' on host 1267."},"Seq":1,"Type":"event"}
[info]: OmniSharp.DotNet.DotNetProjectSystem
        Initializing in /Users/petrtomasek/Projects/CestujnakoleNew
[info]: OmniSharp.DotNet.DotNetProjectSystem
        Auto package restore: False
[info]: OmniSharp.DotNet.DotNetProjectSystem
        Update workspace context
[info]: OmniSharp.DotNet.DotNetProjectSystem
        Resolving projects references
[info]: OmniSharp.MSBuild.MSBuildProjectSystem
        MSBUILD_EXE_PATH environment variable set to /Users/petrtomasek/.vscode/extensions/ms-vscode.csharp-1.10.0/bin/omnisharp/msbuild/MSBuild.dll
[info]: OmniSharp.MSBuild.MSBuildProjectSystem
        MSBuildExtensionsPath environment variable set to /Users/petrtomasek/.vscode/extensions/ms-vscode.csharp-1.10.0/bin/omnisharp/msbuild
[info]: OmniSharp.MSBuild.MSBuildProjectSystem
        MSBuild will use local OmniSharp installation.
[info]: OmniSharp.MSBuild.MSBuildProjectSystem
        No solution files found in '/Users/petrtomasek/Projects/CestujnakoleNew'
[info]: OmniSharp.MSBuild.MSBuildProjectSystem
        Loading project: /Users/petrtomasek/Projects/CestujnakoleNew/CestujnakoleNew.csproj
Discovered Mono file path: /Library/Frameworks/Mono.framework/Versions/Current/Commands/mono
Resolved symbolic link for Mono file path: /Library/Frameworks/Mono.framework/Versions/5.2.0/bin/mono-sgen64
[ERROR] Error: OmniSharp server load timed out. Use the 'omnisharp.projectLoadTimeout' setting to override the default delay (one minute).

我尝试重启 mac,重新安装 vscode,omnisharp,现在升级到 5.2。预览版。没有任何帮助。还是同样的错误。智能感知、去定义等也不能正常工作。

还有什么我可以尝试的吗?

感谢您的宝贵时间。

编辑

vscode的c#扩展版本是最新的(1.10.0)

【问题讨论】:

标签: c# mono visual-studio-code omnisharp


【解决方案1】:

使用以下代码行更新您的用户设置或工作区设置

{
  "omnisharp.projectLoadTimeout": 600
}

默认 60 以外的任何数字都可以。

【讨论】:

  • 我慢慢地将omnisharp.projectLoadTimeout 提高到1200,但由于超时问题,omnisharp 仍然无法加载。但是,我找到了延迟的根本原因。请检查我上面的答案。如果我们在 DefaultExcludes 部分中排除 node_modules、其他 javascript 和静态文件夹,那么它会在几秒钟内加载。无需增加超时时间。
  • 对我来说设置为 600。谢谢。
【解决方案2】:

实际上,这种延迟是由于 wwwroot 文件夹中包含大量库文件,而 OmniSharp 和 C# 编译器实际上都不需要。

我刚刚将下面给出的这些行添加到 .csproj 文件中,如线程中所述,但就我的文件夹结构而言,这件事在几秒钟内推动了 OmniSharp 加载过程的加载向上,

<PropertyGroup
     <DefaultItemExcludes>wwwroot/global/**;$(DefaultItemExcludes)</DefaultItemExcludes> 
     <DefaultItemExcludes>wwwroot/vendors/**;$(DefaultItemExcludes)</DefaultItemExcludes>
</PropertyGroup>

当然,请继续修改替换 wwwroot/vendors/wwwroot/global/ 为您的应用程序的静态文件文件夹结构所需的尽可能多的文件夹不需要由 C# 编译器编译。在 csproj 文件中添加这些行的另一个好处是,它可以提高开发过程中构建周期的性能!,

我实际上在以下链接中问过这个问题:

https://github.com/OmniSharp/omnisharp-vscode/issues/1585

并从这个链接的参考中得到答案:

https://github.com/dotnet/cli/issues/7525

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多