我有一个VB6应用程序,我正在使用微软开发环境部署。
安装包适用于Windows 7/10 32/64位。
我遇到的问题是,如果第二个用户登录到windows并运行安装的应用程序,一些控件不工作。包含MSCOMCT2的表单。OCX, TABCTL32。OCX和其他失败的人说:"元件…或者其中一个依赖项没有正确注册:文件丢失或无效">
但是对于安装了应用程序的用户来说,一切都是好的。我发现,在其他安装中,可以选择只为我自己安装还是为所有用户安装。我没有看到在"微软开发环境"中实现这一点的方法,这是我的问题吗?
如果你为所有用户安装一个应用程序,会有什么变化?
这可能与注册表虚拟化有关。应用程序可能以某种兼容模式运行,因此控件并没有真正在系统范围内安装。
我不太熟悉这些设置,但有可能调整它们,以便dll/OCX文件真正为所有用户注册,应用程序相应地运行。如果故意设置兼容性设置,则有可能破坏其他内容。
希望这是一个有用的起点。
我要补充的是,在我看来,安装应用程序不需要注册是一个更强大的解决方案。参见如何强制VB6使用app目录中的dll和ocx ?