.NET 项目中的多个版本的 Office 主互操作程序集

Multiple versions of Office Primary Interop Assemblies in .NET project

我正在使用 Office 主互操作程序集从我的 WPF 应用程序控制 PowerPoint。目前我在我的项目中使用 PIA v14,它可以毫无问题地与 Office 2010 和 Office 2013 一起使用。但我还需要添加对 Office 2007 的支持(当我在装有 Office 2007 的计算机上测试我的应用程序时,它不起作用)。

所以,我的问题是:我应该将项目中引用的 PIA 更改为 v12(以支持 Office 2007/2010/2013)还是可以将 v12 和 v14(也可能是 v15)PIA 添加到项目并在应用程序启动期间根据目标计算机上安装的 Office 版本动态加载正确版本的程序集?另外,如果我将在所有 Office 版本 (2007/2010/2013) 上使用 PIA v12,是否存在一些兼容性风险?

对此有一个简单的解决方案,使用 Office Interop 包装程序集之一。这些包装器组件使用后期绑定来支持特定版本的 Office 的功能。我用过 NetOffice,我会推荐你​​使用这个。

Features provided by NetOffice

  • Office 集成无版本限制
  • Office 版本 2000、2002、2003、2007、2010 的所有功能, 包括 2013 年
  • 在语法和语义上与 Microsoft Interop 相同 大会
  • 如果您已经了解 Office 对象模型,则无需培训,请使用您的 现有 PIA 代码
  • 可用于 .NET 2.0 或更高版本
  • 没有依赖项,没有互操作程序集,不需要 VSTO