我目前正在支持Microsoft Access 2000业务应用程序,其中包含许多外部依赖项,包括用于邮件合并的Microsoft Word 2007。应用程序使用批处理脚本通过在用户计算机上复制和注册(如果需要)每个DLL来保持外部引用是最新的,如下面的脚本:
COPY "\\fileshare\references\fileX.dll" "C:\WINDOWS\system32\fileX.dll"
regsvr32 "C:\WINDOWS\system32\fileX.dll"
以下是受影响的DLL:
批处理脚本通常只是用相同DLL的相同版本替换用户的DLL。但是,由于某些原因,在执行此批处理脚本并且用户尝试在Office 2007中打开文档之后,会弹出配置向导并从文档中窃取焦点仅需要重新启动才能完成。
虽然这不是一个关键的停止工作的问题,但这肯定是一个烦恼。显而易见的猜测是它是Office 2007 DLL之一,但我还没有能够找出哪个DLL是罪魁祸首。
非常感谢任何输入!
答案 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的用户仍然能够启动您的应用程序。