Open XML SDK:“进程无法访问文件‘x’,因为它正被另一个进程使用。”

Ada*_*dam 2 c# powerpoint ms-office openxml openxml-sdk

这是我修改 PowerPoint 演示文稿、将其另存为新文件、关闭它,然后尝试打开该文件的代码。

var doc = PresentationDocument.Open(@"d:\temp.pptx", true);    
//... proccess presentation
doc.SaveAs(@"d:\temp2.pptx");
doc.Close();

var doc2 = PresentationDocument.Open(@"d:\temp2.pptx", false);
doc2.Close();
Run Code Online (Sandbox Code Playgroud)

我不明白为什么运行时会抛出异常:

该进程无法访问文件“x”,因为它正被另一个进程使用。

Ada*_*dam 7

我注意到doc.SaveAs()我刚刚关闭的返回对象

var savedDoc = doc.SaveAs(@"d:\temp2.pptx") as PresentationDocument;

savedDoc.Close();
Run Code Online (Sandbox Code Playgroud)