У меня есть странная проблема. я хотел бы удалить сборку (plugin.dll на жестком диске), которая уже загружена, но сборка заблокирована операционной системой (vista), даже если я ее выгрузил.
f.e.
AppDomainSetup setup = new AppDomainSetup();
setup.ShadowCopyFiles = "true";
AppDomain appDomain = AppDomain.CreateDomain(assemblyName + "_AppDomain", AppDomain.CurrentDomain.Evidence, setup);
IPlugin plugin = (IPlugin)appDomain.CreateInstanceFromAndUnwrap(assemblyName, "Plugin.MyPlugins");
Мне также нужна сборка infos, потому что я не знаю, какие классы в pluginassembly реализуют интерфейс IPlugin. В одной плагиновой сборке должно быть возможно несколько плагинов.
Assembly assembly = appDomain.Load(assemblyName);
if (assembly != null) {
Type[] assemblyTypes = assembly.GetTypes();
foreach (Type assemblyTyp in assemblyTypes) {
if (typeof(IPlugin).IsAssignableFrom(assemblyTyp)) {
IPlugin plugin = (IPlugin)Activator.CreateInstance(assemblyTyp);
plugin.AssemblyName = assemblyNameWithEx;
plugin.Host = this;
}
}
}
AppDomain.Unload(appDomain);
Как можно получить сборку infos из appDomain без блокировки сборки?
С наилучшими пожеланиями