Vb6 为什么我的应用程序会触发另一个应用程序的安装程序?

Vb6 为什么我的应用程序会触发另一个应用程序的安装程序?,vb6,installation,activex,windows-installer,Vb6,Installation,Activex,Windows Installer,使用旧版VB6应用程序并在该应用程序中打开某些特定表单时,将弹出属于Microsoft Navision(安装在同一台计算机上)的Windows安装程序,如所附图像中所示 每次都会发生,但只在这台机器上 VB6应用程序与Navision完全没有关系 如何避免这两个应用程序之间的异常交互 这是由于windows installer数据库已损坏,并且您的应用程序正在使用Microsoft Dynamics试图安装的某些组件。 您最好删除并重新安装Microsoft Dynamics NAV,或者使用

使用旧版VB6应用程序并在该应用程序中打开某些特定表单时,将弹出属于Microsoft Navision(安装在同一台计算机上)的Windows安装程序,如所附图像中所示

每次都会发生,但只在这台机器上

VB6应用程序与Navision完全没有关系

如何避免这两个应用程序之间的异常交互


这是由于windows installer数据库已损坏,并且您的应用程序正在使用Microsoft Dynamics试图安装的某些组件。 您最好删除并重新安装Microsoft Dynamics NAV,或者使用MSICUU删除“损坏”的软件包


更新:MSICUU优先于,但我没有使用此新工具。

同意,卸载并重新安装。令人惊讶的是,Windows Installer子系统是多么具有侵略性,有时它会变得多么糟糕。我们没有dll地狱,而是MSI地狱。不过,这些安装程序问题中有很多都是由于开发人员或管理员的错误造成的,就像dll地狱一样。@BobRiemersma如果其他一些错误的安装剪辑了您所需的文件,您将无能为力。很难对其进行代码防御!这就是独立程序集可以提供帮助的地方。tcarvin:self heal应重新安装任何已“剪裁”的文件。很可能两个应用程序使用的COM控件(ActiveX/OCX)已在磁盘上的不同位置安装两次,并已从不同位置“注册两次”。因此,存在干扰COM注册表项,每个应用程序将在控件的每个实例化上尝试将其恢复到自己的状态(当您打开相关的VB表单时,控件被实例化)。我已经详细地写了关于