public Assembly LoadAssembly(string name)
{
System.Diagnostics.Debug.Write("Trying to load assembly: " + name);
if (System.IO.File.Exists(name))
{
return Assembly.LoadFrom(name);
}
else
{
string assemblyName = System.IO.Path.GetFileNameWithoutExtension(name);
byte[] publicKeyToekn;
if (GACGeometryKeyTokens.TryGetValue(assemblyName, out publicKeyToekn))
{
AssemblyName an = new AssemblyName();
an.Name = assemblyName;
an.SetPublicKeyToken(publicKeyToekn);
an.Version = mExecutingAssemblyName.Version;
an.CultureInfo = mExecutingAssemblyName.CultureInfo;
an.ProcessorArchitecture = mExecutingAssemblyName.ProcessorArchitecture;
System.Diagnostics.Debug.Write("Assembly: " + assemblyName + "," + an.Version.ToString() + " is in GAC.");
return Assembly.Load(an);
}
}
throw new System.IO.FileNotFoundException();
}