[mkbundle] support satellite assemblies (#3448)
authorMarek Habersack <grendel@twistedcode.net>
Mon, 19 Sep 2016 09:51:24 +0000 (11:51 +0200)
committerGitHub <noreply@github.com>
Mon, 19 Sep 2016 09:51:24 +0000 (11:51 +0200)
commit787b047886da494ec2f05a2db86baca33a9f39f7
treec215c097996fdc349804a6ea94f3c9686eb2d648
parent55d0f3f3ec7860951aa918cfffc182eb89f56c8c
[mkbundle] support satellite assemblies (#3448)

Satellite assemblies are special in that they all share the same file
name, but they live in separate directories named after the locale the
satellite assemblies pack. mkbundle currently doesn't support "clashing"
assembly filenames and will not be able to store the satellite
assemblies in the bundle for that reason.

This patch adds support for storing satellite assemblies with their
culture path prefix (e.g. en-US/MyAssembly.resources.dll) in the bundle
and also special code in the assembly loader to support such filenames
in the code which loads assemblies from the bundle.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=27061
mcs/class/corlib/System.Reflection/Assembly.cs
mcs/tools/mkbundle/mkbundle.cs
mono/metadata/assembly.c