0

我目前支持具有许多外部依赖项的 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 是罪魁祸首。

非常感谢任何输入!

4

1 回答 1

0

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

You also should not be installing any ADO, DAO, or any other MDAC/WDAC components manually. For older OS's, you should run an installer (MDAC_TYP.EXE) that installs the entire set of Data Access Components; google for MDAC installer for more info. On newer OS's, WDAC is installed as part of Windows.

Of your list, these are the only files that I would consider safe to distribute:

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

All of the other files are either part of Office, and should already be on the box, or are part of WDAC/MDAC.

If absolutely necessary, you can always install the Access 2000 Runtime. This would allow users that do not have Access 2000 installed to still be able to start your application.

于 2013-03-07T16:04:57.040 回答