Bug 28876 - Satellite assembly finder fails for memory-loaded assemblies with GetDirectoryName(): Invalid path
Summary: Satellite assembly finder fails for memory-loaded assemblies with GetDirector...
Status: RESOLVED FIXED
Alias: None
Product: Runtime
Classification: Mono
Component: Reflection (show other bugs)
Version: unspecified
Hardware: PC Linux
: High major
Target Milestone: ---
Assignee: Marek Safar
URL:
Depends on:
Blocks:
 
Reported: 2015-04-08 00:19 UTC by Gabriel Garcia
Modified: 2015-04-15 04:51 UTC (History)
3 users (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
Test case from the previous github url, so we can keep the test case here (16.38 KB, application/octet-stream)
2015-04-10 22:08 UTC, Miguel de Icaza [MSFT]
Details

Description Gabriel Garcia 2015-04-08 00:19:25 UTC
Assembly.get_location() returns an empty string for assemblies loaded from memory.

Assembly.InternalGetSatelliteAssembly uses that location string directly in a call to Path.GetDirectoryName, which then fails with: System.ArgumentException: Invalid path

This is unexpected behavior.



** Test case **

https://github.com/Garciat/dnx-mono-resources-bug
Comment 1 Miguel de Icaza [MSFT] 2015-04-10 22:08:38 UTC
Created attachment 10722 [details]
Test case from the previous github url, so we can keep the test case here
Comment 2 Miguel de Icaza [MSFT] 2015-04-10 22:13:25 UTC
At least my Mono version d86446f from April 2nd has this problem.

It is more likely caused by a recent change in resource lookup:

52003dc6f73976aa422804ea4a3761bb2bfb5e9a

From March 23rd
Comment 3 Gabriel Garcia 2015-04-11 07:52:59 UTC
I sent a PR that fixes this bug (I forgot to link it here): https://github.com/mono/mono/pull/1693

As stated in the PR description, I'm not sure if this is a sensible solution to the problem. I.e. if it follows reference .NET behavior.
Comment 4 Marek Safar 2015-04-15 04:51:17 UTC
Fixed in master

Note You need to log in before you can comment on or make changes to this bug.