Pages : 1
#1 Le 10/05/2008, à 22:48
- tuxidermiste
[Résolu] Mono : C#
Bonjour à tous,
Voilà je tâche de compiler un gros programme (émulation d'un serveur ultima online) codé en C# et qui tournerais sous Mono après quelques modifications...
Le problème est que je ne sais quelles modifications faires dans le code du Server ou dans les Scripts... Voici comment je procède et les erreurs que j'ai :
Je télécharge la dernière version du SVN
$ svn checkout http://svn.runuo.com/repos/runuo/devel/
Ensuite je la compile : (les fichiers du server sont dans le dir "Server/*.cs"
$ gmcs -out:runuo.exe -d:MONO -optimize+ -unsafe -r:System,System.Configuration.Install,System.Data,System.Drawing,System.EnterpriseServices,System.Management,System.Security,System.ServiceProcess,System.Web,System.Web.Services,System.Windows.Forms,System.Xml -nowarn:219 -recurse:Server/*.cs
J'ai lors de la compilation quelques avertissements mais rien de grave je pense
Server/Item.cs(1899,37): warning CS0169: The private method `Server.Item.SetSaveFlag(ref Server.Item.SaveFlag, Server.Item.SaveFlag, bool)' is never used
Server/Timer.cs(380,36): warning CS0414: The private field `Server.Timer.m_QueueCountAtSlice' is assigned but its value is never used
Server/ScriptCompiler.cs(520,30): warning CS0169: The private method `Server.ScriptCompiler.LoadScriptedAssembly(System.Collections.Generic.List<System.Reflection.Assembly>, string, Server.ScriptCompiler.Compiler, bool)' is never used
Server/Gumps/Gump.cs(370,32): warning CS0169: The private method `Server.Gumps.Gump.Compile()' is never used
Server/Persistence/FileQueue.cs(39,37): warning CS0414: The private field `Server.FileQueue.Chunk.offset' is assigned but its value is never used
Compilation succeeded - 5 warning(s)
Finallement je lance "mono runuo.exe" et il commence à compiler les scripts du dossiers Scripts/ durant quelques minutes avant de crasher sur ces erreurs (qui ne sont pas des erreurs internes au Scripts mais bien au ScriptCompiler du Server compiler ci-dessus :
$ mono runuo.exe
RunUO - [www.runuo.com] Version 2.0, Build 3052.39033
Core: Running on .NET Framework Version 2.0.50727
Core: Unix environment detected
Scripts: Compiling C# scripts...
ScriptCompiler: : at Mono.CSharp.Expression.CloneTo (Mono.CSharp.CloneContext clonectx, Mono.CSharp.Expression target) [0x00000]
ScriptCompiler: : at Mono.CSharp.Expression.Clone (Mono.CSharp.CloneContext clonectx) [0x00000]
ScriptCompiler: : at Mono.CSharp.TypeOf.CloneTo (Mono.CSharp.CloneContext clonectx, Mono.CSharp.Expression t) [0x00000]
ScriptCompiler: : at Mono.CSharp.Expression.Clone (Mono.CSharp.CloneContext clonectx) [0x00000]
ScriptCompiler: : at Mono.CSharp.Binary.CloneTo (Mono.CSharp.CloneContext clonectx, Mono.CSharp.Expression t) [0x00000]
ScriptCompiler: : at Mono.CSharp.Expression.Clone (Mono.CSharp.CloneContext clonectx) [0x00000]
ScriptCompiler: : at Mono.CSharp.Binary.CloneTo (Mono.CSharp.CloneContext clonectx, Mono.CSharp.Expression t) [0x00000]
ScriptCompiler: : at Mono.CSharp.Expression.Clone (Mono.CSharp.CloneContext clonectx) [0x00000]
ScriptCompiler: : at Mono.CSharp.Binary.CloneTo (Mono.CSharp.CloneContext clonectx, Mono.CSharp.Expression t) [0x00000]
ScriptCompiler: : at Mono.CSharp.Expression.Clone (Mono.CSharp.CloneContext clonectx) [0x00000]
ScriptCompiler: : at Mono.CSharp.Return.CloneTo (Mono.CSharp.CloneContext clonectx, Mono.CSharp.Statement t) [0x00000]
ScriptCompiler: : at Mono.CSharp.Statement.Clone (Mono.CSharp.CloneContext clonectx) [0x00000]
ScriptCompiler: : at Mono.CSharp.Block.CloneTo (Mono.CSharp.CloneContext clonectx, Mono.CSharp.Statement t) [0x00000]
ScriptCompiler: : at Mono.CSharp.ExplicitBlock.CloneTo (Mono.CSharp.CloneContext clonectx, Mono.CSharp.Statement t) [0x00000]
ScriptCompiler: : at Mono.CSharp.ToplevelBlock.CloneTo (Mono.CSharp.CloneContext clonectx, Mono.CSharp.Statement t) [0x00000]
ScriptCompiler: : at Mono.CSharp.Statement.Clone (Mono.CSharp.CloneContext clonectx) [0x00000]
ScriptCompiler: : at Mono.CSharp.Statement.PerformClone () [0x00000]
ScriptCompiler: : at Mono.CSharp.AnonymousMethodExpression.CompatibleMethod (Mono.CSharp.EmitContext ec, Mono.CSharp.TypeInferenceContext tic, System.Type return_type, System.Type delegate_type) [0x00000]
ScriptCompiler: : at Mono.CSharp.AnonymousMethodExpression.Compatible (Mono.CSharp.EmitContext ec, System.Type delegate_type) [0x00000] --- End of inner exception stack trace ---
ScriptCompiler: : at Mono.CSharp.AnonymousMethodExpression.Compatible (Mono.CSharp.EmitContext ec, System.Type delegate_type) [0x00000]
ScriptCompiler: : at Mono.CSharp.AnonymousMethodExpression.ImplicitStandardConversionExists (System.Type delegate_type) [0x00000]
ScriptCompiler: : at Mono.CSharp.Convert.ImplicitStandardConversionExists (Mono.CSharp.Expression expr, System.Type target_type) [0x00000]
ScriptCompiler: : at Mono.CSharp.Convert.ImplicitConversionExists (Mono.CSharp.EmitContext ec, Mono.CSharp.Expression expr, System.Type target_type) [0x00000]
ScriptCompiler: : at Mono.CSharp.MethodGroupExpr.IsApplicable (Mono.CSharp.EmitContext ec, System.Collections.ArrayList arguments, Int32 arg_count, System.Reflection.MethodBase& method) [0x00000]
ScriptCompiler: : at Mono.CSharp.MethodGroupExpr.OverloadResolve (Mono.CSharp.EmitContext ec, System.Collections.ArrayList Arguments, Boolean may_fail, Location loc) [0x00000]
ScriptCompiler: : at Mono.CSharp.Invocation.DoResolveOverload (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags flags) [0x00000]
ScriptCompiler: : at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.Assign.DoResolve (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags flags) [0x00000]
ScriptCompiler: : at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.ExpressionStatement.ResolveStatement (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.StatementExpression.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.Block.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.If.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.Block.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.Block.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
ScriptCompiler: : at Mono.CSharp.EmitContext.ResolveTopBlock (Mono.CSharp.EmitContext anonymous_method_host, Mono.CSharp.ToplevelBlock block, Mono.CSharp.Parameters ip, IMethodData md, System.Boolean& unreachable) [0x00000]
done (0 errors, 0 warnings)
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.
J'ai entendu parler de quelques modifications à faire pour que ce soit compatible avec Mono, seulement je ne sais pas lesquelles bien qu'elles doivent se situées au niveau du Server je pense
Un tout grand merci à toute personne qui m'aidera
ps: voici là version de mono que j'ai installée (je suis sur Hardy Hero)
Mono JIT compiler version 1.2.6 (tarball)
Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com
TLS: __thread
GC: Included Boehm (with typed GC)
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Dernière modification par tuxidermiste (Le 11/05/2008, à 16:51)
Sony VAIO VPCEB2M1E + Kubuntu 11.10
Hors ligne
#2 Le 11/05/2008, à 16:51
- tuxidermiste
Re : [Résolu] Mono : C#
J'ai trouvé la solution en incluant des bibliothèques nécessaires sous formes de dll (qu'on retrouve dans la version windows).
Puis en modifant le DataPath.cs vers un dossier où se trouve les statics et autres fichiers du client.
Ensuite en faisant un lien symbolique de /usr/libz.so.1 vers /usr/libz.so pour éviter les crash lors de l'éxécution.
Sony VAIO VPCEB2M1E + Kubuntu 11.10
Hors ligne
Pages : 1