我们有一个与 MS Office 配合使用并使用 Microsoft.mshtml.dll 的应用程序。我们使用 ClickOnce 来部署应用程序。该应用程序在大多数机器上部署都没有问题,但有时我们会收到错误消息“需要系统更新,Microsoft.mshtl.dll 应该在 GAC 中”。
我们尝试安装 PIA for Office,但没有成功。由于 Microsoft.mshtml.dll 是一个系统相关文件,我们不能将它包含在包中并重新分发它。部署应用程序的最佳方式是什么?
我们有一个与 MS Office 配合使用并使用 Microsoft.mshtml.dll 的应用程序。我们使用 ClickOnce 来部署应用程序。该应用程序在大多数机器上部署都没有问题,但有时我们会收到错误消息“需要系统更新,Microsoft.mshtl.dll 应该在 GAC 中”。
我们尝试安装 PIA for Office,但没有成功。由于 Microsoft.mshtml.dll 是一个系统相关文件,我们不能将它包含在包中并重新分发它。部署应用程序的最佳方式是什么?
您知道您的目标是哪个版本的 MS Office?这些 PIA 非常特定于 Office 版本。我记得当我们构建一个智能客户端应用程序时,我们曾经有 Build VM 机器,每台机器都针对特定版本的 Outlook。
另一个障碍是无法将这些 PIA 指定为先决条件或将它们与应用程序捆绑在一起。这些 PIA 需要使用 Office CD(至少对于 2003 版本)安装在客户端上。
您可以在 clickonce 应用程序中设置先决条件,这将在允许用户安装之前检查 GAC 中的特定程序集。您仍然需要在 ClickOnce 之外手动安装包含所需 office dll 的应用程序,但至少可以避免引发错误。
我们的目标是 Office 2003 和 Office 2007,但使用 Office 11 (2003) dll 作为 Office 2007 是向后兼容的。
该问题仅发生在 Microsoft.mshtml.dll 文件中。此文件设置为 ClickOnce 应用程序中的先决条件。
在此特定安装中,我们尝试同时安装 Office 2003 和 Office 2007 PIA,但均无济于事。
我也有这个问题。
解决方案是转到解决方案资源管理器中的 References 文件夹,然后右键单击 Microsoft.mshtml,然后单击 Properties。
在“属性”页面中,将“复制本地”标记为 True。这应该有效。