Hi, Why is there no 2.0 profile version of all Mono tools (such as resgen, xsd, ...) ?
Right now, it's not possible to use any of these tools when you want to build 2.0 applications. If you have, for example, a resx file for which you need to reference a 2.0 assembly, then it's not possible to compile this resx file on Mono. Any attempt to do this results in the following error: ** (resgen.exe:444): WARNING **: The class System.Collections.Generic.IDictionary`2 could not be loaded, used in mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= Stacktrace: in System.Resources.ResXResourceReader:.ctor (System.IO.Stream) <0xffffffff> in System.Resources.ResXResourceReader:.ctor (System.IO.Stream) <0x30> in (wrapper runtime-invoke) System.Object:runtime_invoke_void_Stream (object,intptr,intptr,intptr) <0x50b31847> in (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (object,object[]) <0x4> in (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (object,object[]) <0xfffffc3d> in System.Reflection.MonoCMethod:Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],Sys tem.Globalization.CultureInfo) <0x8d> in System.Reflection.MonoCMethod:Invoke (System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Glo balization.CultureInfo) <0x1c> in System.Activator:CreateInstance (System.Type,System.Reflection.BindingFlags,System.Reflection.Binder,object[ ],System.Globalization.CultureInfo,object[]) <0x245> in System.Activator:CreateInstance (System.Type,object[],object[]) <0x24> in System.Activator:CreateInstance (System.Type,object[]) <0x20> in ResGen:GetReader (System.IO.Stream,string) <0xf9> in ResGen:CompileResourceFile (string,string) <0x7b> in ResGen:Main (string[]) <0x291> in (wrapper runtime-invoke) System.Object:runtime_invoke_int_string[] (object,intptr,intptr,intptr) <0x50b3fd87> Native stacktrace: /home/monohead/mono/install/bin/mono(mono_handle_native_sigsegv+0xc3) [0x814ba83] /home/monohead/mono/install/bin/mono [0x8137686] /lib/libpthread.so.0 [0xb7ed56d7] [0xffffe440] /home/monohead/mono/install/bin/mono [0x8091a2e] /home/monohead/mono/install/bin/mono [0x8091d9a] /home/monohead/mono/install/bin/mono(mono_metadata_parse_type_full+0xf6) [0x8090f26] /home/monohead/mono/install/bin/mono(mono_metadata_parse_method_signature_fu ll+0x108) [0x8091358] /home/monohead/mono/install/bin/mono(mono_method_signature+0xff) [0x80ce33f] /home/monohead/mono/install/bin/mono [0x80cf7e8] /home/monohead/mono/install/bin/mono [0x811bed5] /home/monohead/mono/install/bin/mono [0x81267cd] /home/monohead/mono/install/bin/mono [0x8136175] /home/monohead/mono/install/bin/mono [0x8136cfd] /home/monohead/mono/install/bin/mono [0x813715e] /home/monohead/mono/install/bin/mono [0x813727a] /home/monohead/mono/install/bin/mono(mono_compile_method+0x18) [0x80ced48] /home/monohead/mono/install/bin/mono(mono_magic_trampoline+0x1a) [0x814ce5a] [0xb7d40032] [0xb7605d16] /home/monohead/mono/install/bin/mono [0x8137530] /home/monohead/mono/install/bin/mono(mono_runtime_invoke+0x27) [0x80d0477] /home/monohead/mono/install/bin/mono(mono_runtime_invoke_array+0x188) [0x80d16f8] /home/monohead/mono/install/bin/mono [0x80d85f4] [0xb7605c5c] [0xb760586e] [0xb76057d5] [0xb760429e] [0xb7603f2d] [0xb7603ea9] [0xb7603222] [0xb75ffbec] [0xb75f7afa] [0xb75f77d4] /home/monohead/mono/install/bin/mono [0x8137530] /home/monohead/mono/install/bin/mono(mono_runtime_invoke+0x27) [0x80d0477] /home/monohead/mono/install/bin/mono(mono_runtime_exec_main+0xaf) [0x80d148f] /home/monohead/mono/install/bin/mono(mono_runtime_run_main+0x19f) [0x80d10cf] /home/monohead/mono/install/bin/mono [0x805c591] /home/monohead/mono/install/bin/mono(mono_main+0x817) [0x805cf67] /home/monohead/mono/install/bin/mono [0x805b90b] /lib/libc.so.6(__libc_start_main+0xad) [0xb7d9851d] /home/monohead/mono/install/bin/mono [0x805b841] This is because resgen is a 1.1 (1.0 profile) assembly (which loads some 1.1 system assemblies) and hence you end with a 1.0 runtime, which ofcourse can't deal with 2.0 assemblies. Why not just build all Mono tools in both 1.0 and 2.0 profile ? Even if the source code is exactly the same, you still need these profile-specific assemblies. We would then have, for example, a resgen.exe in $prefix/lib/mono/1.0 and $prefix/lib/mono/2.0. You can then even have a small wrapper script (named resgen) that executes one of these assemblies based on some environment variable (MONO_PROFILE) or something. Isn't this better than having wsdl, wsdl2, wsdl3, ... ? Any feedback is appreciated ... Gert _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list