将PIA部署到Office的混合版本

时间:2010-09-13 17:32:11

标签: deployment ms-office office-pia

您好我在理解MS Office的主互操作程序集(PIA)的部署时遇到了一些复杂问题。我在VS 2008中使用纯com技术构建了Visual Studio Com Add-IN(不是VSTO,请参阅下面的内容以获取更多信息),它引用了2003主互操作程序集,但加载项可以在2003,2007或2010现在使用办公机器。因为我从来不知道客户是使用2003年,2007年还是2010年,所以我不能简单地部署一个PIA版本作为先决条件(除非我做了3个我不想做的安装程序)。现在,我的理解是当您按照here步骤将2003和2007 PIA添加到Visual Studio(2008)安装程序包中显示的先决条件列表时,先决条件足够聪明,可以确定哪个办公室版本是在您定位的客户端上运行。因此,如果要选择2003主互操作程序集和2007主要iterop程序集作为先决条件,那么当它安装在具有2003的计算机上时,它应该足够智能,只有在这台计算机上缺少这些PIA时才尝试添加2003 PIA。如果这是一台2007 Office机器,那么它只会安装2007 PIA(而不是尝试安装2003 PIA)。

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

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

问题3 尽管实际的程序集引用了2003主要的interops,但我目前还没有将这些带有加载项的interop部署到安装位置。相反,我假设如果我能安装正确的PIA,那么在安装路径中我不需要这个,因为PIA将在GAC中。但是,一种可能的方法可能只是在安装路径中包含引用的2003程序集(在我的例子中是excel和word),而不用担心PIA。我怀疑这可能适用于2003年的机器,但可能不会在2007年和2010年的机器上运行后者,即使在程序集的安装路径中运行时发现2003引用的interop,我想如果没有GAC中的Policy.11.0.Microsoft.Office.Interop.Excel / Word(等),然后2007年和2010年可能不知道如何处理11.0(2003)的互操作(因为我认为Policy.11.0.Microsoft。 Office.Interop文件将2003 interops的请求重定向到2007或2010)。有什么想法吗?

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

  

正如您在3个问题中所说,我想确定的是我们是否可以通过VS设置实用程序构建一个单独的安装程序

你做不到。您必须创建自定义安装程序包装程序(安装引导程序)。

多年前我使用dotNetInstaller和HTML GUI构建器,我认为今天WiX toolset会是更好的解决方案。

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

基于注册表检查,文件检查,已安装的产品检查,Windows版本,办公室版本,您可以创建是否应安装组件的条件。

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