diff --git a/src/libraries/System.Reflection/tests/AssemblyTests.cs b/src/libraries/System.Reflection/tests/AssemblyTests.cs index 0732615ec9e02..6c5c8c2bb320b 100644 --- a/src/libraries/System.Reflection/tests/AssemblyTests.cs +++ b/src/libraries/System.Reflection/tests/AssemblyTests.cs @@ -510,7 +510,7 @@ public void Location_ExecutingAssembly_IsNotNull() } #pragma warning disable SYSLIB0012 - [Fact] + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotBrowser))] // single file public void CodeBase() { Assert.NotEmpty(Helpers.ExecutingAssembly.CodeBase); diff --git a/src/mono/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs b/src/mono/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs index 5fb9e07417464..21ac12509e6be 100644 --- a/src/mono/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs +++ b/src/mono/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs @@ -253,9 +253,7 @@ private static void AddPublicNestedTypes(Type type, List types, Listimage->name)) { - absolute = g_strdup (mass->image->name); + /* return NULL for bundled assemblies in single-file scenarios */ + const char* filename = m_image_get_filename (mass->image); + + if (!filename) + return NULL_HANDLE_STRING; + + gchar *absolute; + if (g_path_is_absolute (filename)) { + absolute = g_strdup (filename); } else { - absolute = g_build_filename (mass->basedir, mass->image->name, (const char*)NULL); + absolute = g_build_filename (mass->basedir, filename, (const char*)NULL); } mono_icall_make_platform_path (absolute);