¿Cómo consigo que el DocumentViewer de WPF libere su bloqueo de archivo en el documento XPS de origen?

Después de mostrar un archivo XPS en el DocumentViewer de WPF y cerrar la instancia de DocumentViewer, el archivo XPS se bloquea y no puedo eliminarlo. Necesito liberar el bloqueo en el archivo XPS para poder eliminarlo, escribir otro con el mismo nombre y, opcionalmente, mostrar ese nuevo archivo XPS en una nueva instancia de DocumentViewer. Necesito hacer esto en la misma instancia de la aplicación, sin tener que cerrar la aplicación (este es un escenario de Vista previa de impresión).

En otras palabras, ¿cómo obtendría el siguiente código para ejecutarse sin lanzar una excepción en el "File.Delete (tempXpsFile)"? ¿declaración?

var tempXpsFile = @"c:\path\to\Temporary.xps";

var previewWindow = new Window();
var docViewer = new DocumentViewer();
previewWindow.Content = docViewer;

GenerateXpsFile(tempXpsFile);

var xpsDocument = new XpsDocument(tempXpsFile);

previewWindow.ShowDialog();

File.Delete(tempXpsFile);  //this will throw an exception due to a file lock on tempXpsFile

GenerateXpsFile(tempXpsFile); //assume this generates a different file
//otherwise the scenario doesn't make sense as we could just skip the above delete
//and this statement and re-use the same file

previewWindow = new Window();
docViewer = new DocumentViewer();
previewWindow.Content = docViewer;

previewWindow.ShowDialog();

Al cerrar la aplicación se libera el bloqueo del archivo, como se menciona enWPF DocumentViewer no libera el archivo XPS, pero eso no es una opción en este escenario.

Respuestas a la pregunta(2)

Su respuesta a la pregunta