mmofacts.com

Mono

gepostet vor 17 Jahre, 7 Monate von Fornax
Moin!
Ich habe mit C# bisher nur unter Windows mit dem csc gearbeitet. Jetzt wollte ich Mein Programm auch mal unter Mono (erstmal auch auf Win, später Linux) testen. Leider klappt das mit dem kompilieren nicht so.
Bisher habe ich folgenden Befehl verwendet:
csc Server.cs AssemblyInfo.cs /r:ChaosNetServer.dll /r:myTime.dll /r:MySQLDriverCS.dll /win32icon:fg.ico
Wie sieht das unter Mono aus? Ich habe schon verschiedene Argumente Probiert, jedoch bekomme ich immer Meldungen á la "error CS0246: The type or namespace name `MySQLDriverCS' could not be found. Are you missing a using directive or an assembly reference?" oder "error CS0006: Cannot find assembly `System.Net'"
Hoffentlich kennt sich hier jmd damit aus, und kann mir weiterhelfen
gepostet vor 17 Jahre, 7 Monate von TheUndeadable
Moin,
endlich mal ein C#ler :-)
Du kannst die unter Windows kompilierte .exe einfach per 'mono bla.exe' starten, du brauchst nicht nochmals unter Linux zu kompilieren.
Dann kannst du auch .Net 2-Programme ausführen.
Der Mono-Compiler ist noch nicht wirklich soweit. So wie es ausschaut, hast du keine DLL-Referenz an den mcs (Mono C#-Compiler) übergeben. Wie dies geht, weiß ich nicht, müsste aber in der Hilfe zu finden sein.
Edit: Welche Version von Mono nutzt du? unter welche Distri?
gepostet vor 17 Jahre, 7 Monate von Fornax
Öhm, gut Idee, ich mach erstmal ein update...
So, ich hab jetzt Mono 1.1.17.1_2 drauf, und Benutze Windows XP SP2
Wenn ich 'mono Server.exe' (also von csc kompiliert) ausführe, bekomme ich folgende Fehlermeldung:
** (Server.exe:424): WARNING **: The following assembly referenced from C:\Dokumente und Einstellungen\AndrÚ\Eigene Dateien\Programming\multithreadServer\Server.exe could not be loaded:
Assembly: myTime (assemblyref_index=2)
Version: 0.1.1.33216
Public Key: (none)
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (C:\Dokumente und Einstellungen\AndrÚ\Eigene Dateien\Programming\multithreadServer\).
gepostet vor 17 Jahre, 7 Monate von TheUndeadable
> C:\Dokumente und Einstellungen\AndrÚ\Eigene Dateien\Programming\multithreadServer\
Probier es mal in c:\temp oder so auszuführen. Hauptsache ohne komische Umlaute....
Ansonten: Befindet sich die myTime.dll im multithreadServer-Verzeichnis?
Wenn du es in den GAC von .Net eingetragen hast, hat Mono nichts davon, da es seinen eigenen GAC nutzt.
gepostet vor 17 Jahre, 7 Monate von Fornax
Die DLL leigt im gleichen Verzeichnis, was GAC ist, weiß ich nicht (interne PATH-Varible?), damit habe nichts gemacht.
Am Pfad scheint es zu liegen... Das Komsiche Sonderzeichen Ist übrigens ein é von André..
Wenn ich es in C:\Temp ausführe, bekomme ich nurnoch folgendes, das gucke ich mir später mal an, habe gerade keine Zeit
Unhandled Exception: System.TypeInitializationException: An exception was thrown
by the type initializer for FGEngine.Server ---> System.IndexOutOfRangeExceptio
n: Array index is out of range.
in <0x00050> FGEngine.Server:.cctor ()--- End of inner exception stack trace ---
gepostet vor 17 Jahre, 7 Monate von TheUndeadable
> GAC
Global Assembly Cache, im Internet findest du genug Infos. Dort kannst du Assemblies registrieren, die von mehreren Projekten genutzt werden können.
> FGEngine.Server:.cctor
Sieht nach einem Fehler im statischen Konstruktor aus.

Auf diese Diskussion antworten