程序加载自己定义目录的DLL时,可以注册AssemblyResolve事件,来自己加载。
AppDomain.CurrentDomain.AssemblyResolve += this.OnDomainAssemblyResolve;
private Assembly OnCurrentDomainAssemblyResolve(object sender, ResolveEventArgs args)
{
return LoadAssembly(args.Name);
// System.Reflection.Assembly.LoadFile(fileFullPath);
}
根据一个目录,获取该目录下的所有dll(包含子目录)
string foldPath ;
if(!Paht.IsPatRooted(foldPath))
{
folderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, foldPaht);
}
string[] files = Directory.GetFiles(foldPath,"*.dll",SearchOption.AllDirectories);
foreach(var file in files)
{
string assemblyName = Path.GetFileName(file);
assemblyName = assemblyName.Sustring(0, assemblyName.Length -4);
string assemblyPath = Path.GetFullPath(file);
}