无聊简介:

在我的工作场所,我们有一个非常古老的 WinForms 产品(从 1994 年开始上市,仍然在 VB3 上运行)。它有三个截然不同的版本,每个版本都面向一位客户。客户端将其传递给他们的用户,其中一些是共享的。这些版本可以并存。

五年前,我们用 C#.Net 重写了其中一个版本。两年后,另一个版本(我们称之为版本M)被重写,两年后,是时候转换最后一个剩余版本(我们称之为版本C)了。我们已经工作一年了,本周将投入生产。

在转换过程中,我们决定不转换任何作为外部模块出售的东西;这些是用 VB6 构建的,并且使用了来自 立方体远点. 。M 版本中有两个这样的模块,C 版本中有三个这样的模块。每个模块都有自己的 MSI 安装程序,由主产品的安装程序安静地运行。

错误

在制作过程中,我们发现了一个bug:当版本 C 安装在新计算机上,然后安装版本 M 时,一旦在版本 C 中打开外部模块,我们就会收到一条消息:

BeCubed error

单击“确定”后,模块即可运行。此外,当它们以任何其他顺序安装并且版本 M 中的两个模块都能完美工作时,不会发生这种情况。

其他详情

  • 所有 OCX 和 DLL 文件均已通过所有模块设置进行了比较;文件是相同的。
  • 当仅安装一个版本 M 或 C 或首先安装 M 时,所有模块都可以工作。
  • 我们拥有我们使用的所有软件的许可证,包括 BeCubed。

有谁知道什么可能导致这样的错误,可能的解决方案是什么?

有帮助吗?

解决方案 2

显然,其中一个模块将 OCX 安装到系统目录(默认 C:\Windows\System),其他人将它们安装到程序文件目录(C:\Program Files\CompanyName\Shared Files)。这可能会导致双重注册 OCX 或类似内容的冲突。我不知道那里出了什么问题,但是当我们更改要安装在的一个模块时 Shared Files 像其他人一样文件夹,问题已解决。我在这里写这篇文章是为了如果有人遇到类似的问题,他可以检查以确保所有文件都安装在同一位置。

其他提示

好吧,由于文件没有任何更改,可能注册表中的某些内容发生了更改。

但这似乎是您应该联系 BeCubed 解决的问题,询问他们如何打开扩展日志记录或请求他们支持。

目前还没有足够的信息来了解到底发生了什么......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top