¿Alguien sabe cómo deshacerse de las adiciones creadas con System.AddIn? Todos los ejemplos en línea parecen mostrar cómo cargar y usar fácilmente un complemento, pero ninguno muestra cómo deshacerse de ellos una vez que están vivos. Mi problema es crear complementos en nuevos procesos, y estos procesos nunca se recogen basura, obviamente, es un problema.Eliminar las adiciones creadas con MAF (System.AddIn)
A continuación se muestra un ejemplo de código que ilustra mi problema. Supongamos que el usuario nunca sale de esta aplicación, sino que crea muchas instancias de ICalculator. ¿Cómo se eliminan estos procesos addIn?
static void Main(string[] args)
{
string addInRoot = GetExecutingDirectory();
// Update the cache files of the pipeline segments and add-ins
string[] warnings = AddInStore.Update(addInRoot);
// search for add-ins of type ICalculator
Collection<AddInToken> tokens = AddInStore.FindAddIns(typeof(ICalculatorHost), addInRoot);
string line = Console.ReadLine();
while (true)
{
AddInToken calcToken = ChooseCalculator(tokens);
AddInProcess addInProcess = new AddInProcess();
ICalculatorHost calc = calcToken.Activate<ICalculatorHost>(addInProcess, AddInSecurityLevel.Internet);
// run the add-in
RunCalculator(calc);
}
}
Oh, alguna información adicional. También estoy manteniendo una referencia al manejador del contrato en mi clase HostViewAdapter, que todavía no parece ser el truco. –