【问题标题】:Selecting Office 2003/2007 COM Object (Correct One) in Winforms Application在 Winforms 应用程序中选择 Office 2003/2007 COM 对象(正确的一个)
【发布时间】:2010-09-14 13:53:11
【问题描述】:

我们正在创建一个需要引用 Office 2003 或 Office 2007 COM 对象的 Windows 窗体应用程序(C# 或 VB.NET),具体取决于安装的 Office 版本。处理这种情况并在运行时引用正确的 COM 对象的最佳方法是什么?

【问题讨论】:

    标签: winforms com ms-office officedev


    【解决方案1】:

    除非您想使用 Office 2007 对象模型的任何新添加的对象和方法,否则可以构建引用 Office 2003 PIA,只需确保在目标系统上部署了正确版本的 PIA:

    解决此问题的另一种方法是删除对后续 PIA 的依赖。由于 Office 具有高度的向后兼容性,您可以放心地假设,如果您的加载项在 Office 2003(使用 Office 2003 PIA)上运行,那么它也应该在 Office 2007(使用 Office 2007 PIA)上运行。

    (来自Add-ins for Multiple Office Versions without PIAs Andrew Whitechapel)

    否则,我会向您推荐 Andrew Whitechapel 的以下博客文章:Can you build one add-in for multiple versions of Office?(请参阅 Microsoft 未正式支持的 BIG 警告)。

    另一个不需要 PIA 的选项(这使得部署更容易)是将 ComImport 与后期绑定一起使用。然而,这比使用互操作程序集要慢,但如果自动化代码不在快速路径上,这可能是一个很好的解决方案。您将在同一篇博文中找到如何实现此功能的说明:Add-ins for Multiple Office Versions without PIAs

    【讨论】:

      【解决方案2】:

      Office 的主要互操作程序集对此没有帮助吗?我不确定,因为我不必认真使用它们,但我认为它们会。

      【讨论】:

        猜你喜欢
        • 2010-11-22
        • 1970-01-01
        • 2012-05-21
        • 2010-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-12
        相关资源
        最近更新 更多