我的项目最初设置为二进制兼容性,但它没有构建。所以我首先将它设置为不兼容,它以这种方式构建得很好。然后我将它设置回二进制兼容性,并覆盖之前生成的文件,它工作正常。
为什么这必须发生?
我的项目最初设置为二进制兼容性,但它没有构建。所以我首先将它设置为不兼容,它以这种方式构建得很好。然后我将它设置回二进制兼容性,并覆盖之前生成的文件,它工作正常。
为什么这必须发生?
我会冒险猜测您正在使用的二进制兼容位置是可执行文件本身,而不是存储的 bincompat 版本。
通过更改代码中任何公开的 com 接口,二进制兼容性将被破坏(您可以使用扩展接口,但不更改现有接口/类型),从而阻止构建。
通过将其设置为不兼容的构建,将丢弃检查并构建可执行文件。
然后你把它改回二进制,这就是我认为你将二进制兼容版本指向构建的 exe 本身而不是单独的副本的地方/原因 - 所以可执行文件自动与自身兼容并允许它构建。
我认为 VB6 中有一个错误可以打开对 dll/exe 的引用而不释放它,因此当您使用二进制兼容性时,有时它可以帮助关闭 VB6,重新打开它并构建。