2010-08-08 56 views
0

我开发了一个Office 2007 C#加载项。它使用clickonce进行部署。在使用Office 2010的系统上一切正常,但在装有XP SP3,NET 3.5sp1和Office 2007的计算机上,我收到了一个奇怪的程序集加载错误。Clickonce办公室附加组件参考问题

我的加载项不直接引用Microsoft.Office.Interop.SmartTag.dll。这被Microsoft.Office.Tools.Commmon.v9.0.dll引用 - 这是我的加载项引用的。

当使用clickonce安装加载项时,会报告在我的加载项的本地安装文件夹中找不到Microsoft.Office.Interop.SmartTag.dllMicrosoft.Office.Tools.Commmon.v9.0.dllMicrosoft.Office.Interop.SmartTag.dll在GAC中都有正确的版本。

我已经使用Reflector来尝试检测问题,但它通过在GAC中查找DLL轻松地解决Microsoft.Office.Interop.SmartTag.dll引用。

clickonce安装失败的可能原因是什么?所需的程序集存在,但GAC显然不被咨询。

我发现在清单注册表值中添加|vstolocal会使所有事情按预期工作,但我仍然想知道为什么我首先得到错误。

回答

1

您是否将PIA部署为部署中的先决条件,以及VSTO运行时?

+0

VSTO - 是的,PIA - 没有。事实证明,Office 2007不需要PIA,因为它已通过典型安装进行安装。不过,这不是问题,因为特定系统已经安装了所有先决条件。 – wpfwannabe 2010-08-08 19:49:11

+0

仅因安装了Office 2007,您无法依赖已安装的PIA。这是Office 2010的真实情况,但不是2007年。仅供参考。 – RobinDotNet 2010-08-09 07:24:01

+0

您能否详细说明为什么我不能依靠预装的PIA?添加'| vstolocal'后,我的加载项按预期工作。因此,所有的东西*已经安装。 – wpfwannabe 2010-08-09 10:05:49