【问题标题】:Opening up a PowerPoint file using Interop hangs on one users computer使用 Interop 打开 PowerPoint 文件在一台用户计算机上挂起
【发布时间】:2020-06-22 15:59:31
【问题描述】:

我对这个有点不知所措。

我有一个从模板文件创建 PowerPoint 演示文稿的 C# 应用程序。此应用程序适用于除一位用户外的所有用户。

在此用户计算机上,该应用程序过去运行良好,但现在在尝试打开 PowerPoint 文件时挂起。 进度条显示“正在导入模板”,所以我知道它在 ReportProgress("Importing Template");ReportProgress("Expanding Template"); 之间

使用 ppt = Microsoft.Office.Interop.PowerPoint;

私有布尔 ExpandTemplateAndSave(字符串文件名)
{
   布尔状态=真;

   字符串路径 = Directory.GetCurrentDirectory() + "\\Resources\\pptTemplate.pptx";


   //备份文件在服务器上是硬编码的
   if (!File.Exists(path))
   {
      path = @"[有效服务器路径]\Test Build\pptTemplate.pptx";
   }

   ReportProgress("导入模板");

   ppt.Application app = new ppt.Application();

   ppt.Presentation pres = app.Presentations.Open(路径,MsoTriState.msoTrue,MsoTriState.msoFalse,MsoTriState.msoFalse);

   ReportProgress("扩展模板");
}

什么可能导致它挂起?

【问题讨论】:

  • 互操作依赖于 Microsoft Office 的版本。
  • 我已经更新了帖子。用户表示该应用程序过去几周前可以运行(在此时间范围内没有进行任何开发)。因此,我认为这不是 Office 版本控制问题。
  • 这听起来像是office的版本最近更新了。可能用户 Office 已更新到 365。
  • 谢谢,我去问问用户。
  • 用户说他们的Office版本没有更新。

标签: c# office-interop freeze powerpoint-interop


【解决方案1】:

您需要将本地文件路径传递给打开指定演示文稿的Presentations.Open 方法。大多数 Office 应用程序只能处理本地文件路径,因此 PowerPoint 似乎也有同样的限制。

另一个可能的陷阱是网络访问。防火墙和防病毒软件可能会阻止应用程序访问远程端点。

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 2013-09-26
    • 2022-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    相关资源
    最近更新 更多