【问题标题】:Error: Failed to connect to OmniSharp错误:无法连接到 OmniSharp
【发布时间】:2015-05-05 15:18:22
【问题描述】:

首先,我已经尝试了Getting "Error: Failed to connect to OmniSharp" 中列出的步骤,并按照提到的 reddit 帖子中发布的说明进行操作。

我在 OS X Yosemite 上安装了 VSCode,但在加载 sln 时出现此错误。

Error: Failed to connect to OmniSharp

我知道 OmniSharp 随 VSCode 一起安装,但我也安装了 Mono 以及使用 brew 安装的 dnvm、aspnet/dnx。

谁能给点建议?我喜欢 VSCode 的外观和感觉,阅读文档后可以看出它有一些很棒的功能。我一直在耐心等待在我的 macbook 上完成我的 c# 工作,并且非常期待能够尝试 VSCode。

感谢您的任何建议。

这是我的 OmniSharp 日志的输出:

Starting OmniSharp at '/Volumes/cca/cca.sln'...
[INFORMATION:OmniSharp.Startup] Omnisharp server running on port '2000' at location '/Volumes/cca' on host 930.
[INFORMATION:OmniSharp.AspNet5.AspNet5Paths] Using runtime '/Users/jayrue/.dnx/runtimes/dnx-mono.1.0.0-beta4'.
[INFORMATION:OmniSharp.AspNet5.AspNet5ProjectSystem] Scanning '/Volumes/cca' for ASP.NET 5 projects
[INFORMATION:OmniSharp.AspNet5.AspNet5ProjectSystem] No project.json based projects found
[INFORMATION:OmniSharp.MSBuild.MSBuildProjectSystem] Detecting projects in '/Volumes/cca/cca.sln'.
[WARNING:OmniSharp.MSBuild.MSBuildProjectSystem] Skipped unsupported project type 'http://localhost:63367'

这是我的 sln:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Express 2013 for Web
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "cca", "http://localhost:63367", "{53236049-2FD4-436E-B20D-8E53D6F9EC7E}"
    ProjectSection(WebsiteProperties) = preProject
        UseIISExpress = "true"
        TargetFrameworkMoniker = ".NETFramework,Version%3Dv2.0"
        Debug.AspNetCompiler.VirtualPath = "/localhost_63367"
        Debug.AspNetCompiler.PhysicalPath = "E:\inetpub\wwwroot\cca\"
        Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_63367\"
        Debug.AspNetCompiler.Updateable = "true"
        Debug.AspNetCompiler.ForceOverwrite = "true"
        Debug.AspNetCompiler.FixedNames = "false"
        Debug.AspNetCompiler.Debug = "True"
        Release.AspNetCompiler.VirtualPath = "/localhost_63367"
        Release.AspNetCompiler.PhysicalPath = "E:\inetpub\wwwroot\cca\"
        Release.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_63367\"
        Release.AspNetCompiler.Updateable = "true"
        Release.AspNetCompiler.ForceOverwrite = "true"
        Release.AspNetCompiler.FixedNames = "false"
        Release.AspNetCompiler.Debug = "False"
        SlnRelativePath = "E:\inetpub\wwwroot\cca\"
    EndProjectSection
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {53236049-2FD4-436E-B20D-8E53D6F9EC7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {53236049-2FD4-436E-B20D-8E53D6F9EC7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
EndGlobal

【问题讨论】:

    标签: mono visual-studio-code omnisharp


    【解决方案1】:

    您需要 project.json 文件。也就是 VSCode 理解的项目文件格式。它不理解 sln 格式。

    【讨论】:

    • 如果我有一个过去几年一直在做的项目,我想如何制作一个 project.json 呢?
    【解决方案2】:

    对于 MSBuild 工作区(带有 sln-file 的工作区)VSCode 支持 csproj-files。您发布的解决方案只是指向一个网站项目({E24C65DC-7377-472B-9ABA-BC803B73C61A}http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs)。如前所述,另一种选择是带有project.json-files 的 DNX 工作区。

    【讨论】:

    • 当您说只是指向一个网站项目时,您是指我从上面的 codeproject ({E24C65DC-7377-472B-9ABA-BC803B73C61A}) 中获取网站 GUID 并将其插入到我的 sln 中吗?如果是这样,它究竟会去哪里?如果没有,我的 sln 可以转换为 project.json 吗?
    • 不,sln 基本上是任何类型项目的容器。根据 GUID 识别不同的项目类型,而 OmniSharp 仅识别特定的项目类型(csproj,fae04ec0-301f-11d3-bf4b-00c04f79efbc)。没有从 sln 到 project.json 的自动转换。你
    • 我仍然对如何让它发挥作用感到有些困惑。你说没有自动转换,有手动的吗?我只是希望能够使用智能感知来处理我的项目......没有omnisharp我无法......
    【解决方案3】:

    尝试打开整个项目文件夹而不是 .sln 文件。转到文件>打开,而不是进入项目文件夹,单击它一次以选择它,然后单击打开。 Visual Studio Code 将尝试自动加载该文件夹中的所有相关文件。

    【讨论】:

    • 您好,谢谢您的建议。不幸的是,这正是我加载项目的方式,但它仍然无法正常工作。
    • 只是出于兴趣,您之前使用什么软件来创建 .sln 文件?
    • Visual Studio Express 2013 For Web... 你认为这可能会奏效吗?我可以在 Visual Studio Ultimate 2013 中打开它们...
    【解决方案4】:

    OmniSharpServer 在端口 2000 上运行,但 ycm 客户端使用随机端口与服务器连接。这就是失败的原因。

    进行以下更改将解决此问题:

    文件: 第三方/ycmd/ycmd/completers/cs/cs_completer.py

    """ Start the OmniSharp server """
    self._logger.info( 'startup' )
    
    -    self._omnisharp_port = utils.GetUnusedLocalhostPort()
    +    #self._omnisharp_port = utils.GetUnusedLocalhostPort()
    +    self._omnisharp_port = 2000
    

    然后删除 cs_completer.pyc 并重试。

    【讨论】:

    猜你喜欢
    • 2014-12-01
    • 2014-02-03
    • 2018-10-07
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 2013-04-16
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多