DLL更新后MS Office运行配置?

时间:2013-03-07 15:31:52

标签: dll batch-file ms-office

我目前正在支持Microsoft Access 2000业务应用程序,其中包含许多外部依赖项,包括用于邮件合并的Microsoft Word 2007。应用程序使用批处理脚本通过在用户计算机上复制和注册(如果需要)每个DLL来保持外部引用是最新的,如下面的脚本:

COPY "\\fileshare\references\fileX.dll" "C:\WINDOWS\system32\fileX.dll"
regsvr32 "C:\WINDOWS\system32\fileX.dll"

以下是受影响的DLL:

  • comdlg32.ocx(已注册)
  • mscomctl.ocx(已注册)
  • STDOLE2.TLB
  • MS09.dll
  • MSACC9.OLB
  • msoutl.olb
  • MSWORD.OLB
  • VBE6.DLL(已注册)
  • dao360.dll(已注册)
  • msado21.tlb

批处理脚本通常只是用相同DLL的相同版本替换用户的DLL。但是,由于某些原因,在执行此批处理脚本并且用户尝试在Office 2007中打开文档之后,会弹出配置向导并从文档中窃取焦点仅需要重新启动才能完成。

虽然这不是一个关键的停止工作的问题,但这肯定是一个烦恼。显而易见的猜测是它是Office 2007 DLL之一,但我还没有能够找出哪个DLL是罪魁祸首。

非常感谢任何输入!

1 个答案:

答案 0 :(得分:0)

我的理解是你不应该分发OLB文件。它们包含在Office的安装中,并且已经存在于安装了办公室的任何工作站上。

您也不应手动安装任何ADO,DAO或任何其他MDAC / WDAC组件。 对于较旧的操作系统,您应该运行安装整套数据访问组件的安装程序(MDAC_TYP.EXE); google for MDAC installer了解更多信息。在较新的操作系统上,WDAC作为Windows的一部分安装。

在您的列表中,这些是我认为可以安全分发的唯一文件:

comdlg32.ocx
mscomctl.ocx
stdole2.tlb  (although, this REALLY shouldn't be necessary)

所有其他文件都是Office的一部分,应该已经开箱即用,或者是WDAC / MDAC的一部分。

如果绝对必要,您始终可以安装Access 2000 Runtime。这将允许未安装Access 2000的用户仍然能够启动您的应用程序。