【问题标题】:Deploying PIA to mixed versions of Office将 PIA 部署到混合版本的 Office
【发布时间】:2011-04-11 19:11:56
【问题描述】:

您好,我一直在与一些复杂性作斗争,以了解 MS Office 的主要互操作程序集 (PIA) 的部署。我在 VS 2008 中内置了基于纯 com 技术的 Visual Studio Com Add-IN(不是 VSTO,请参阅此底部了解更多信息),它引用了 2003 Primary Interop Assemblies,但该插件可用于 2003、2007 或现在 2010办公机器。因为我不知道客户将使用 2003、2007 还是 2010,所以我不能简单地部署一个 PIA 版本作为先决条件(除非我制作了 3 个我不想做的安装程序)。现在,我的理解是,当您按照here 的步骤将 2003 和 2007 PIA 添加到 Visual Studio (2008) 安装包中显示的先决条件列表中时,先决条件足够聪明,可以确定正在运行的 Office 版本您的目标客户。因此,如果您要选择 2003 主互操作程序集和 2007 主迭代程序集作为先决条件,那么当它安装在具有 2003 的机器上时,它应该足够智能,仅在这台机器上缺少 2003 PIA 时才尝试添加 2003 PIA 并且如果这是 2007 Office 机器,那么它将只安装 2007 PIA(而不尝试安装 2003 PIA)。

问题 1 这是正确的理解吗(前提包如此智能,只能根据 Office 的版本安装它需要的东西?)

问题 2 有没有办法让 2010 PIA 像 2003 和 2007 一样显示在 VS 2008 的先决条件列表中?我不想将此项目升级到 VS 2010 b/c,它现在被认为是一个遗留应用程序,来自世界各地的许多客户都在使用它。

问题 3 尽管实际程序集引用了 2003 主要互操作,但我目前没有将这些互操作与加载项一起部署到安装位置。相反,我假设如果我可以安装正确的 PIA,那么我不需要在安装路径中显示它,因为 PIA 将在 GAC 中。但是,一种可能的方法可能是在安装路径中仅包含引用的 2003 程序集(在我的情况下为 excel 和 word),而不用担心 PIA。我怀疑这将适用于 2003 机器,但可能不适用于 2007 和 2010 机器 b/c,即使在运行时在程序集的安装路径中找到引用的 2003 互操作,我认为如果没有GAC 中的 Policy.11.0.Microsoft.Office.Interop.Excel/Word(etc),然后 2007 和 2010 可能不知道如何处理 11.0 (2003) 互操作(我认为 Policy.11.0.Microsoft. Office.Interop 文件将对 2003 互操作的请求重定向到 2007 或 2010)。对此有什么想法吗?

问题 4:Framework 2.0 应用程序 Office 加载项和 Office 2003 存在一个众所周知的错误,即加载项无法加载。 KB907417 aka KB908002 解决了这个问题。如果您在 3.0 或 3.5 框架上开发(并使 3.0 或 3.5 作为先决条件),是否有人知道此 KB 是否必要,因为此问题特定于框架 2.0?或者知识库是否仍然需要部署 b/c 是 office 2003 的问题,而不是框架的版本?

您可以从我的 3 个问题中看出,我试图确定的是我们是否可以通过 VS 设置实用程序构建一个安装程序。如果 PIA 可以用一个安装程序完成,但上面的 KB 是障碍(因为也许答案会回来,即使在 3.0 或 3.5 框架 2003 上,客户也需要 KB),那么一个安装程序的路径可能就是制作KB 是全面的先决条件,并将其安装在 2007 或 2010 机器上,尽管它们在技术上不需要它们。对该选项的任何想法也将不胜感激。最后,我知道现在通常使用 VSTO 而不是纯托管框架代码来为 excel 或 word 编写托管 Com Add-IN,但这不是目前将遗留应用程序更改为这个方向的选项。另据报道,现在可以使用 4.0 框架来部署插件,而无需任何 PIA 作为先决条件,但同样,目前这不是一个可行的选择。

【问题讨论】:

    标签: deployment ms-office office-pia


    【解决方案1】:

    代码是否使用任何 Office 2007+ 方法或类?如果不是,您确定不能在所有情况下都使用 2003 PIA?后来的应用程序应该是向后兼容的(支持相同的 API),所以我认为您需要更新 PIA 的唯一原因是如果您需要访问 2007 年或以后添加的某些功能。

    您可能想看看Add-in Express,它承诺提供一个适用于所有版本的安装程序,并且非常易于使用。

    【讨论】:

      【解决方案2】:

      您可以从我的 3 个问题中看出,我想要确定的是我们是否可以通过 VS 设置实用程序构建一个安装程序

      你不能。您必须创建自定义安装程序打包程序(设置引导程序)。

      很多年前,我将dotNetInstaller 与HTML GUI builder 一起使用,我认为今天WiX toolset 会是更好的解决方案。

      检查如何使用Orca 或 .msi 和 .exe 安装程序构建 PIA .msi 安装程序流检查 Windows 安装程序日志。

      根据注册表检查、文件检查、已安装产品检查、windows 版本、office 版本,您可以创建是否应安装组件的条件。

      哦,我建议在没有先决条件的情况下制作插件安装程序,并使用您的自定义安装程序引导程序有条件地安装它们。

      【讨论】:

        猜你喜欢
        • 2010-11-19
        • 2010-09-27
        • 2010-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多