为什么omnisharp不起作用?

时间:2014-07-28 11:37:33

标签: emacs24 melpa omnisharp

我最近安装了emacs 24.3.1我已经在 Emacs 中使用 melpa 安装了包 omnisharp

但是,在使用C#进行编程时,我无法在 Emacs 上看到 omnisharp 的任何影响。我是否还需要安装其他东西,或者我在这里做错了什么?

在编译Omnisharp服务器时,我收到以下错误日志: -

/home/pratik/OmniSharpServer/OmniSharp.sln (default targets) ->
(Build target) ->
/home/pratik/OmniSharpServer/OmniSharp.Tests/OmniSharp.Tests.csproj (default         targets) ->
/usr/lib/mono/4.0/Microsoft.CSharp.targets (CoreCompile target) ->

FindUsages/IntegrationTest.cs(39,27): error CS0584: Internal compiler error: Method not found: 'Nancy.Testing.BrowserResponseExtensions.BodyAsXml'.
FindUsages/IntegrationTest.cs(41,20): error CS1061: Type `object' does not contain a definition for `Length' and no extension method `Length' of type `object' could be found (are you missing a using directive or an assembly reference?)
FindUsages/IntegrationTest.cs(42,19): error CS0021: Cannot apply indexing with [] to an expression of type `object'
FindUsages/IntegrationTest.cs(43,19): error CS0021: Cannot apply indexing with [] to an expression of type `object'

 31 Warning(s)
 4 Error(s)

2 个答案:

答案 0 :(得分:3)

我正在经历与你相同的路径(* nix + emacs + omnisharp)。您的问题的答案在OmniSharpServer git页面(https://github.com/nosami/OmniSharpServer)中。你的系统上有单声道,所以你必须克隆OmniSharpServerRepository并在shell中执行这些行:

git clone https://github.com/nosami/OmniSharpServer.git
cd OmniSharpServer
git submodule update --init --recursive
xbuild

如果xbuild抱怨某些程序集丢失了git submodule update --init --recursive的错误。只要你在底部得到“N Error(s)”消息,你就不会在项目中找到任何二进制文件(exe或dll)。如果你解决了错误,那么二进制文件应该是“OmniSharpServer / OmniSharp / bin / Debug”。

您应该在问题中包含完整编译器输出。如果您还提供有关您的环境的一些信息,那么更容易为您提供帮助。请在OmniSharpServer目录中执行此行(我想看看您是否正在查看主分支的最新版本,我想看到您正在使用的单声道版本):

git branch -v
mono --version

答案 1 :(得分:1)

我遇到了同样的错误,发现存在版本冲突。你需要在Ubuntu上安装mono-devel:

sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo echo "deb http://download.mono-project.com/repo/debian wheezy main" > /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
apt-get install mono-devel

完成后,您应该能够启动服务器:

mono OmniSharp/bin/Debug/OmniSharp.exe