Auf einem meiner Raspberry Pi-Rechner läuft eine in Mono geschriebene Server-Applikation. Damit die Server-Applikation funktionierte benötigte sie natürlich die Mono Runtime. Diese kann unter Raspbian einfach mittels des Kommandos:
apt-get install mono-runtime
installiert werden. Als ich die Serverapplikation nach der Installation von Mono ausführen wollte erhielt ich allerdings folgende Fehlermeldung:
Missing method .ctor in assembly Melinda.dll, type System.Runtime.CompilerServices.ExtensionAttribute Can't find custom attr constructor image: Melinda.dll mtoken ...
Dieses Problem ließ sich durch die Installation der Bibliothek libmono-system-core4.0-cil beheben:
apt-get install libmono-system-core4.0-cil
Im Anschluss erhielt ich bei einem erneuten Startversuch eine weitere Fehlermeldung:
Grapevine.Exceptions.Server.UnableToStartHostException occurred An error occured when trying to start the Grapevine.Server.RestServer
In diesem Fall kam die Fehlermeldung vom REST-API Framework Grapevine. Allerdings war der Fehler nicht wirklich in der Bibliothek zu finden. Stück für Stück kamen weitere Fehlermeldungen wie diese:
System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
zustande. Nach einiger Recherche war klar: auch in diesem Fall fehlten weitere Abhängigkeiten aus dem Mono-Framework. In diesem Fall half die Holzhammermethode; die Installation des kompletten Mono-Frameworks. Dazu wurde das Paket mono-complete mittels:
apt-get install mono-complete
installiert. Dieses nimmt ein paar mehr Megabyte als das Runtime-Paket in Anspruch, allerdings sind damit alle möglichen Abhängigkeiten installiert. Somit kann man sich auf die eigentliche Entwicklung und Ausführung der eigenen Applikationen konzentrieren, anstatt einer kuriosen Fehlermeldung nach der anderen hinter her zu jagen.