Estoy intentando cargar un dll en una aplicación de consola y luego descargarlo y eliminar el archivo por completo. El problema que estoy teniendo es que el acto de cargar el dll en su propio AppDomain crea una referencia en el Dominio de la Aplicación Principal, lo que no me permite destruir el archivo dll a menos que apague totalmente el programa. ¿Alguna idea sobre cómo hacer que este código funcione?Cargar ensamblaje en AppDomain nuevo sin cargarlo en Parent AppDomain
string fileLocation = @"C:\Collector.dll";
AppDomain domain = AppDomain.CreateDomain(fileLocation);
domain.Load(@"Services.Collector");
AppDomain.Unload(domain);
Por cierto que también han probado este código sin suerte ya sea
string fileLocation = @"C:\Collector.dll";
byte[] assemblyFileBuffer = File.ReadAllBytes(fileLocation);
AppDomainSetup domainSetup = new AppDomainSetup();
domainSetup.ApplicationBase = Environment.CurrentDirectory;
domainSetup.ShadowCopyFiles = "true";
domainSetup.CachePath = Environment.CurrentDirectory;
AppDomain tempAppDomain = AppDomain.CreateDomain("Services.Collector", AppDomain.CurrentDomain.Evidence, domainSetup);
//Load up the temp assembly and do stuff
Assembly projectAssembly = tempAppDomain.Load(assemblyFileBuffer);
//Then I'm trying to clean up
AppDomain.Unload(tempAppDomain);
tempAppDomain = null;
File.Delete(fileLocation);
Este enlace está muerto! – ZioN
Por favor, puede proporcionar el código – ZioN
nuevo enlace: https://bmark.us/bmark/readable/9503538d6bab80 – user1