Hi, Currently when an AssemblyBuilder is created, and then its AssemblyName is retrieved, the Version is always returned as 0.0.0.0, even when it - the Version- was defined.
The attached patch defines it, and also minor changes to the tests are attached. Carlos.
Index: reflection.c =================================================================== --- reflection.c (revisión: 45600) +++ reflection.c (copia de trabajo) @@ -4334,6 +4334,22 @@ else assembly->assembly.aname.culture = g_strdup (""); + if (assemblyb->version) { + char **version = g_strsplit (mono_string_to_utf8 (assemblyb->version), ".", 4); + char **parts = version; + assembly->assembly.aname.major = atoi (*parts++); + assembly->assembly.aname.minor = atoi (*parts++); + assembly->assembly.aname.build = *parts != NULL ? atoi (*parts++) : 0; + assembly->assembly.aname.revision = *parts != NULL ? atoi (*parts) : 0; + + g_strfreev (version); + } else { + assembly->assembly.aname.major = 0; + assembly->assembly.aname.minor = 0; + assembly->assembly.aname.build = 0; + assembly->assembly.aname.revision = 0; + } + assembly->run = assemblyb->access != 2; assembly->save = assemblyb->access != 1; Index: ChangeLog =================================================================== --- ChangeLog (revisión: 45600) +++ ChangeLog (copia de trabajo) @@ -1,4 +1,8 @@ +2005-06-07 Carlos Alberto Cortez <[EMAIL PROTECTED]> + * reflection.c (mono_image_basic_init): Define + Version in MonoDynamicAssembly. + 2005-06-06 Michael Meeks <[EMAIL PROTECTED]> * object.c (extend_interface_array): fix really silly
Index: AssemblyNameTest.cs =================================================================== --- AssemblyNameTest.cs (revisión: 45568) +++ AssemblyNameTest.cs (copia de trabajo) @@ -283,6 +283,15 @@ return Assembly.LoadFrom (Path.Combine (tempDir, name.Name + ".dll")); } + private AssemblyBuilder GenerateDynamicAssembly (AssemblyName name) + { + AssemblyBuilder ab = domain.DefineDynamicAssembly ( + name, + AssemblyBuilderAccess.Run); + + return ab; + } + [Test] public void TestCultureInfo () { @@ -302,17 +311,26 @@ Assembly a = GenerateAssembly (name); Assert.AreEqual ("1.2.3.4", a.GetName ().Version.ToString ()); + AssemblyBuilder ab = GenerateDynamicAssembly (name); + Assert.AreEqual ("1.2.3.4", ab.GetName ().Version.ToString ()); + name = GenAssemblyName (); name.Version = new Version (1, 2, 3); a = GenerateAssembly (name); Assert.AreEqual ("1.2.3.0", a.GetName ().Version.ToString ()); + ab = GenerateDynamicAssembly (name); + Assert.AreEqual ("1.2.3.0", ab.GetName ().Version.ToString ()); + name = GenAssemblyName (); name.Version = new Version (1, 2); a = GenerateAssembly (name); Assert.AreEqual ("1.2.0.0", a.GetName ().Version.ToString ()); + + ab = GenerateDynamicAssembly (name); + Assert.AreEqual ("1.2.0.0", ab.GetName ().Version.ToString ()); } [Test] Index: ChangeLog =================================================================== --- ChangeLog (revisión: 45568) +++ ChangeLog (copia de trabajo) @@ -1,3 +1,9 @@ +2005-06-07 Carlos Alberto Cortez <[EMAIL PROTECTED]> + + * AssemblyNameTest.cs: Added tests to Version method, + in order to do additional checks with AssemblyBuilder + version. + 2005-06-07 Gonzalo Paniagua Javier <[EMAIL PROTECTED]> * AssemblyTest.cs: put back GetEntryAssembly, but this one is working.
_______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list