【问题标题】:Visual Studio 2017 C# project with Microsoft.Office.Interop.Word 2016/365 coded and 2010 production使用 Microsoft.Office.Interop.Word 2016/365 编码和 2010 生产的 Visual Studio 2017 C# 项目
【发布时间】:2018-12-12 09:19:35
【问题描述】:

我正在使用 Microsoft Office 互操作工具在 Visual Studio 2017 中编写我的第一个项目,以基本上打开一些 Word 文件、提取一些内容并将其导出到 XML 文件。 我知道应该在目标计算机上安装 Office,并且实际上在那台 PC 上安装了 2010 许可,而在我的 PC 上我有一个 365 套件。

第一个版本只能在我的 PC 上运行,缺少对生产 PC 上互操作库的引用错误,所以我下载了 Microsoft Office 2010:Primary Interop Assemblies Redistributable https://www.microsoft.com/en-us/download/details.aspx?id=3508 包含在我的项目中作为参考,替换 2016 年的。

第一个困难是:安装后,我无法在驱动器上找到文件,在 Visual Studio 中也找不到参考,在文档中也找不到。有没有关于在哪里选择 dll 的信息?

所以我从 cab 中解压了一个方便的目录中的 WORDPIA.DLL,并在我的项目中引用了它。

虽然它可以在本地运行,但尚未在生产 PC 上运行。 我确定我在这个主题上遗漏了很多要点,VS 和 C# 不是我的领域,但我需要一些技巧来完成这个项目。

【问题讨论】:

  • 我建议您不要使用互操作,因为它已被 the Open XML SDK for Office 替换 - 假设您使用的是 docx 而不是 .doc 文件。使用 SDK,您无需担心在使用它的计算机上安装 Word。
  • 嗯,这是一种方式,但我也需要阅读 .doc。实际上我也在测试 Gembox 库,似乎运行良好,但它不是免费的,即使在 99% 的文件中我需要阅读的段落少于 20 段

标签: c# visual-studio ms-word office-interop pia


【解决方案1】:

返回原始项目(或参考您机器上安装的 PIA 版本)。可再发行组件旨在安装到未安装 PIA 的 Office 2010 计算机。它并不打算以您设想的方式使用。

现在单击每个“互操作”引用条目并查看“属性”窗口。应该有“嵌入互操作类型”的设置。将其设置为 True。这应该使项目版本独立,因为它将包含您的项目使用的 PIA 信息。

请注意,“嵌入互操作类型”是在 .NET Framework 4.0 中引入的,不适用于较早版本的 Framework。如果需要早期版本,则必须使用后期绑定或使用 Office 2010 开发项目。

【讨论】:

  • @GlaucoRovere 我已经更新了答案。昨天在移动设备上,所以无法访问详细信息...
猜你喜欢
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 2011-04-02
  • 1970-01-01
  • 2018-04-15
  • 2012-04-10
  • 1970-01-01
  • 2017-11-19
相关资源
最近更新 更多