我在C#中有一个Winform应用程序(在Windows上执行正常)但由于以下错误而在Raspberry Pi上的Mono中崩溃。
* mini-codegen的断言。 c:807,条件'i == sel'未满足。 执行本机代码时得到SIGABRT。这通常表示单声道运行时或应用程序使用的本机库之一出现致命错误。
经过一番研究,我发现Pi上的Mono版本不支持Winform的Textbox控件,因此出现上述错误。我有Mono JIT编译器版本3.2.8(Debian 3.2.8 + dfsg-4 + rpi1 )版本安装在Pi上。 似乎Mono的更高版本修复了这个错误(3.8.1)。
有人可以解释如何将Mono升级到最新版或所需版本.Pi上安装了Linux。 我尝试了以下命令(sudo apt-get update&& sudo apt-get dist-upgrade。)但是Pi上的版本仍然显示为3.2.8。
-Thanks
答案 0 :(得分:4)
假设您正在运行“RASPBIAN Debian Wheezy”,Mono的回购中的最新版本在该平台上为4.0.2,因此您需要更改apt-get来源以查看Mono的回购:
Debian,Ubuntu和衍生产品
将Mono Project GPG签名密钥和软件包存储库添加到您的系统中(如果您不使用sudo,请务必切换到root):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
运行程序包升级以将现有程序包升级到最新的程序包。然后按用法部分中的说明安装Mono。
sudo apt-get upgrade
注意:虽然APT包是针对Debian Wheezy构建的,但它与许多Debian衍生产品(包括Ubuntu)兼容,这意味着您可以在所有这些发行版中使用相同的存储库。
来自:http://www.mono-project.com/docs/getting-started/install/linux/#debian-ubuntu-and-derivatives