.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
我正在使用 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