Невозможно запустить omnisharp-сервер на OSX

Попытка работать с новым omnisharp с помощью vim.

Моя текущая установка vim с omnisharp-vim. Страницы GitHub для тех, кто направлен на то, чтобы вручную запустить клиент omnisharp-server в каталоге проекта (чтобы он мог проиндексировать все файлы.cs), а затем попытаться использовать vim.

Проблема в том, что я не могу запустить omnisharp-сервер.

После выполнения шагов на странице GitHub: https://github.com/OmniSharp/omnisharp-server

Я получаю следующую ошибку (запускается из каталога пакета vim или только что клонированного и xbuilt каталога)

HelloMvc>$ mono ~/.vim/bundle/Omnisharp/server/OmniSharp/obj/Debug/OmniSharp.exe -s .

Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'Nancy.Hosting.Self,
Version=0.22.2.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
File name: 'Nancy.Hosting.Self, Version=0.22.2.0, Culture=neutral, PublicKeyToken=null'
at OmniSharp.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly
'Nancy.Hosting.Self, Version=0.22.2.0, Culture=neutral, PublicKeyToken=null' or one of its     
dependencies.
File name: 'Nancy.Hosting.Self, Version=0.22.2.0, Culture=neutral, PublicKeyToken=null'
at OmniSharp.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

Таким образом, кажется, что у моно нет сборки Nancy.Hosting.Self?

Поэтому я вручную загрузил проект Nancy, попытался его собрать и получил эту ошибку:

/Users/me/seesharp/Nancy/src/Nancy.sln (default targets) ->
(Build target) ->
/Users/me/seesharp/Nancy/src/Nancy.Hosting.Wcf/Nancy.Hosting.Wcf.csproj (default targets) ->
/usr/local/Cellar/mono/3.10.0/lib/mono/4.5/Microsoft.CSharp.targets (CoreCompile target) ->

NancyWcfGenericService.cs(65,31): error CS1061: Type `System.ServiceModel.Web.WebOperationContext' 
does not contain a definition for `CreateStreamResponse' and no extension method 
`CreateStreamResponse' of type `System.ServiceModel.Web.WebOperationContext' could be found. Are you 
missing an assembly reference?

Хорошо, это странно, так как на странице github написано, что она строится, поэтому давайте посмотрим код, который не работает:

[WebInvoke(UriTemplate = "*", Method = "*")]
    public Message HandleRequests(Stream requestBody)
    {
        var webContext = WebOperationContext.Current;

        var nancyRequest = 
            CreateNancyRequestFromIncomingWebRequest(webContext.IncomingRequest, requestBody, OperationContext.Current);

        var nancyContext = 
            engine.HandleRequest(nancyRequest);

        SetNancyResponseToOutgoingWebResponse(webContext.OutgoingResponse, nancyContext.Response);

        return webContext.CreateStreamResponse(
            stream =>
                {
                    nancyContext.Response.Contents(stream);
                    nancyContext.Dispose();
                }, 
                nancyContext.Response.ContentType ?? string.Empty);
    }

и в верхней части файла

    using System.ServiceModel.Web;

Ссылка также присутствует в файле проектов.csproj.

Так что же происходит, и если я зашел слишком далеко в неправильном направлении, как я могу заставить работать omnisharp-сервер, пока я жду исправления в плагинах omnisharp-vim или youcompleteme, которые позаботятся об этом?

edit: Хорошо, так что после того, как вы попробовали приложение mvcmusicstore и загрузили его, я вижу, что vim говорит, что он работает в моно, вот так:

mono '/Users/me/.vim/bundle/Omnisharp/server/OmniSharp/bin/Debug/OmniSharp.exe' -p 2000 -s .

но это дает мне следующую ошибку: Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object at OmniSharp.Solution.CSharpProject.AddReference (IAssemblyReference reference) [0x00000] in <filename unknown>:0 at OmniSharp.Solution.CSharpProject.AddMsCorlib () [0x00000] in <filename unknown>:0 at OmniSharp.Solution.CSharpProject..ctor (ISolution solution, OmniSharp.Logger logger, System.String folderPath) [0x00000] in <filename unknown>:0 at OmniSharp.Solution.CSharpFolder.LoadSolution () [0x00000] in <filename unknown>:0 at OmniSharp.Program.StartServer (System.String solutionPath, System.String clientPathMode, Int32 port, Verbosity verbosity, System.String configLocation) [0x00000] in <filename unknown>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object at OmniSharp.Solution.CSharpProject.AddReference (IAssemblyReference reference) [0x00000] in <filename unknown>:0 at OmniSharp.Solution.CSharpProject.AddMsCorlib () [0x00000] in <filename unknown>:0 at OmniSharp.Solution.CSharpProject..ctor (ISolution solution, OmniSharp.Logger logger, System.String folderPath) [0x00000] in <filename unknown>:0 at OmniSharp.Solution.CSharpFolder.LoadSolution () [0x00000] in <filename unknown>:0 at OmniSharp.Program.StartServer (System.String solutionPath, System.String clientPathMode, Int32 port, Verbosity verbosity, System.String configLocation) [0x00000] in <filename unknown>:0

1 ответ

Оказывается, это проблема с omnisharp-vim.

Загрузка, сборка и запуск решения omnisharp-server устранили эту проблему для меня

Редактировать: это было исправлено в плагине omnisharp-vim. Вытащите последнюю версию и восстановите, и все будет в порядке. Спасибо сопровождающему.

Другие вопросы по тегам