我正在更新使用.ocx文件与数据库通信的工作程序。该程序适用于几个月前编译的.ocx版本。但是,如果我尝试编译新版本的.ocx文件,程序就不再想与数据库通信了。
我的第一个想法是.ocx文件的代码中必定存在错误。所以我尝试打开.ocx项目的备份(其中包含与工作.ocx文件相同的代码)并编译它。但这也不起作用。与工作.ocx相同的代码在安装过程中会经历相同的注册表进程,但它无法正常工作。
我尝试编译更多备份,一直追溯到2005年,但没有一个.ocx文件可以工作,除了我几个月前编译的文件。
每次重新编译.ocx文件时,我都会在开发环境中将其注册到我的程序中,并重新编译主程序.exe文件。奇怪的是,当我在开发环境中运行程序时,我从备份编译的所有.ocx文件都有效。但是,只要我编译主.exe文件,将文件移动到另一台计算机上的安装程序并安装它们,程序就会停止正常工作。
总而言之,我有一堆.ocx项目,可以在同一台计算机上的开发环境中编译和使用我的程序。只要我将文件移动到安装程序并安装,程序就会停止工作。我可以使用几个月前发现的.ocx文件,但是当我尝试编译生成该工作文件的同一项目时,该程序无法正常工作。
我尝试从几年前的备份中提取.ocx文件而不重新编译(类似于我对工作副本的处理),但也失败了。几个月前我只能让我的安装程序使用那个.ocx文件。这可能不是代码的问题,因为我尝试编译具有相同代码的工作.ocx的原始项目。我不认为这是一个注册问题,因为所有文件在安装过程中都会经历相同的注册表进程。
至少我有一个正常工作的安装程序(使用我找到的.ocx),但现在我永远无法对.ocx文件进行更改,因为我编译的所有内容都无法正常工作。我一定错过了什么,但我不知道是什么。
答案 0 :(得分:0)
感谢您的快速回复! Alex K.的解决方案非常有效。
为解决我的问题,我打开了一个新的ocx项目,转到Project-> Properties-> Component选项卡,选择二进制兼容性选项并浏览到工作ocx文件的位置。
现在允许我对我的应用程序的ocx项目进行更新。