Une autre option consiste à incorporer les autres assemblages en tant que EmbededResource. Puis gérer les domaines de l'application AssemblyResolve, à partir de là, vous pouvez lire l'assembly de la ressource et le charger dans le runtime. Quelque chose comme ce qui suit:
public class HookResolver
{
Dictionary<string, Assembly> _loaded;
public HookResolver()
{
_loaded = new Dictionary<string, Assembly>(StringComparer.OrdinalIgnoreCase);
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
}
System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string name = args.Name.Split(',')[0];
Assembly asm;
lock (_loaded)
{
if (!_loaded.TryGetValue(name, out asm))
{
using (Stream io = this.GetType().Assembly.GetManifestResourceStream(name))
{
byte[] bytes = new BinaryReader(io).ReadBytes((int)io.Length);
asm = Assembly.Load(bytes);
_loaded.Add(name, asm);
}
}
}
return asm;
}
}
Le lien vers le blog est cassé . –
Autant que je sache, al.exe peut être utilisé pour créer des assemblys satellites, mais je ne pense pas qu'il puisse fusionner plusieurs ressources de culture en un seul assemblage, ce que demande la question. –