我刚刚从 Windows 切换到 ubuntu,你知道我是 Linux 菜鸟。我已经从源代码编译了 monodevelop (4.0),因为只有旧的 2.x 版本可以用 apt-get 安装。然后我的项目没有运行,因为没有适用于 .NET 4.0 的 VB.NET 编译器。所以我想我也要编译新的 Mono 3(只有 2.x 可以用 apt-get 安装)。
Mono 源代码已下载、编译、安装,似乎正在运行:
$ mono --version
Mono JIT compiler version 3.0.12 (master/e4a5774 So 9. Jun 12:41:41 CEST 2013)
但是现在 monodevelop 不再启动了,我的桌面图标上什么也没有发生,然后我查看了它在终端中返回的内容:
$ monodevelop
System.TypeInitializationException: An exception was thrown by the type initializer for Mono.Unix.Native.Syscall ---> System.EntryPointNotFoundException: Mono_Posix_Syscall_get_at_fdcwd
at (wrapper managed-to-native) Mono.Unix.Native.Syscall:get_at_fdcwd ()
at Mono.Unix.Native.Syscall..cctor () [0x0000a] in /home/manky/Work/mono/mcs/class/Mono.Posix/Mono.Unix.Native/Syscall.cs:2168
--- End of inner exception stack trace ---
at MonoDevelop.Core.LoggingService.RedirectOutputToFileUnix (FilePath logDirectory, System.String logName) [0x0001e] in /home/manky/Work/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Core/LoggingService.cs:177
at MonoDevelop.Core.LoggingService.RedirectOutputToLogFile () [0x00041] in /home/manky/Work/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Core/LoggingService.cs:140
FATAL ERROR [2013-06-09 13:27:54Z]: MonoDevelop failed to start. Some of the assemblies required to run MonoDevelop (for example gtk-sharp)may not be properly installed in the GAC.
System.IO.FileNotFoundException: Could not load file or assembly 'gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f' or one of its dependencies.
File name: 'gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f'
at MonoDevelop.Ide.IdeStartup.Main (System.String[] args) [0x0005c] in /home/manky/Work/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs:533
但我已经仔细检查了 gtk-sharp 是否已安装。另外:
$ ls /usr/lib/mono/gac/gtk-sharp/2.12.0.0__35e10195dab3c99f/
gtk-sharp.dll gtk-sharp.dll.config
我尝试重新编译 monodevelop,但是现在无法再编译,似乎它现在也找不到 gtk-sharp 和 gdk-sharp 库。
所以我不知道下一步该怎么做。这个问题让我抓狂,我只想让我的 Ubuntu 系统上的 monodevelop 和 VB.NET 4.0 正常工作。有人能帮我吗?
编辑:所以我卸载了 mono 和 monodevelop,并安装了 ubuntu 的官方旧版本,现在它又可以运行了。但有人能告诉我如何删除旧的 mono 版本并将其替换为新编译的版本吗?
答案1
如果你在 Linux 环境中安装 gtk-sharp2 可以解决这个问题(至少对我来说是这样)
sudo apt-get install gtk-sharp2
答案2
您的问题可能出在版本之一上。Mono 抱怨说它找不到gtk-sharp, Version=2.12.0.0
,请问安装了哪个版本?
使用最新版本并从源代码进行编译的一个问题是,它可能依赖于所需的各种库的较新版本。您必须安装每个所需库的必要版本。