(algo así como un seguimiento sobre del poste (que sigue sin respuesta): https://stackoverflow.com/q/6197829/314661)Eliminación de Microsoft.Office.Interop.Word.Application
Usando el siguiente código
Application app = new Application();
_Document doc = app.Documents.Open("myDocPath.docx", false, false, false);
doc.PrintOut(false);
doc.Close();
Estoy intentando abrir e imprimir un archivo mediante programación.
El problema es que cada vez que ejecuto el código anterior, se inicia un nuevo proceso WINWORD.exe y, obviamente, esto rápidamente consume toda la memoria.
La clase de aplicación no parece contener un método de eliminación/cierre o similar.
Después de un poco de investigación I (realicé) y cambié el código a lo siguiente.
Application app = new Application();
_Document doc = app.Documents.Open(fullFilePath + ".doc", false, false, false);
doc.PrintOut(false);
doc.Close();
int res = System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
int res1 = System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
Y puedo ver que el recuento de referencia restante es cero pero los procesos permanecen?
PD: Estoy usando la versión 14 de la biblioteca Microsoft.Office.Interop.
No es mala idea. Pero lo intenté y no pareció ayudar. –
Absolute legand. App.Quit() fue la clave ... ¡Gracias! –
Este es un ejemplo de Excel. – gangelo