internal void UnloadAddin(string id) { RemoveAddinExtensions(id); RuntimeAddin addin = GetAddin(id); if (addin != null) { addin.UnloadExtensions(); lock (LocalLock) { var loadedAddinsCopy = new Dictionary <string, RuntimeAddin> (loadedAddins); loadedAddinsCopy.Remove(Addin.GetIdName(id)); loadedAddins = loadedAddinsCopy; if (addin.AssembliesLoaded) { var loadedAssembliesCopy = new Dictionary <Assembly, RuntimeAddin> (); foreach (Assembly asm in addin.Assemblies) { loadedAssembliesCopy.Remove(asm); } loadedAssemblies = loadedAssembliesCopy; } } ReportAddinUnload(id); } }
internal void UnloadAddin(string id) { defaultContext.RemoveAddinExtensions(id); RuntimeAddin addin = GetAddin(id); if (addin != null) { addin.UnloadExtensions(); loadedAddins.Remove(Addin.GetIdName(id)); AddinManager.ReportAddinUnload(id); } }
internal void UnloadAddin(string id) { defaultContext.RemoveAddinExtensions(id); RuntimeAddin addin = GetAddin(id); if (addin != null) { addin.UnloadExtensions(); loadedAddins.Remove(Addin.GetIdName(id)); foreach (Assembly asm in addin.Assemblies) { loadedAssemblies.Remove(asm); } AddinManager.ReportAddinUnload(id); } }