Estoy trabajando en una aplicación WPF que se abre y muestra documentos XPS. Cuando la aplicación se cierra, la especificación es que la aplicación debe eliminar el documento XPS abierto para su limpieza. Sin embargo, al abrir un determinado documento XPS, la aplicación arroja una excepción que indica que el archivo aún está en uso cuando intenta eliminarlo. Es un poco extraño porque solo ocurre cuando se abre un documento XPS en particular y solo cuando se ha movido más allá de la primera página.WPF DocumentViewer no lanza el archivo XPS
Algunos de los códigos I utilizados se muestran a continuación:
Para abrir el documento XPS:
DocumentViewer m_documentViewer = new DocumentViewer();
XpsDocument m_xpsDocument = new XpsDocument(xpsfilename, fileaccess);
m_documentViewer.Document = m_xpsDocument.GetFixedDocumentSequence();
m_xpsDocument.Close();
para navegar por el documento XPS:
m_documentViewer.FirstPage();
m_documentViewer.LastPage();
m_documentViewer.PreviousPage();
m_documentViewer.NextPage();
Para cerrar el objeto DocumentViewer y borrando el archivo:
m_documentViewer.Document = null;
m_documentViewer = null;
File.Delete(xpsfilename);
Todo es bastante básico y funciona con los otros documentos que probamos. Pero con el documento XPS particular, aparece una excepción que dice que el archivo que se va a eliminar todavía se está utilizando.
¿Hay algún error o falta en mi código?
Gracias!
¡Hola, funcionó! Acabo de dejar el objeto XpsDocument abierto y solo llamé a XpsDocument.Close() durante la salida y pude eliminar el archivo. Gracias moogs! –
Esto funciona solo si puede cerrar su aplicación para liberar el bloqueo. Si necesita liberar el bloqueo mientras la aplicación permanece abierta, deberá ver mi respuesta a continuación o en http://stackoverflow.com/questions/1442607/how-do-i-get-wpfs-documentviewer-to-release-its -file-lock-on-the-source-xps-docu –