Скучное введение:
На моем рабочем месте у нас очень старый продукт WinForms (выпускается с 1994 года и до сих пор работает на VB3). У него три совершенно разные версии, каждая из которых отправляется одному клиенту. Клиенты передают его своим пользователям, некоторые из которых являются общими. Версии могут жить бок о бок.
Пять лет назад мы переписали одну из этих версий в C # .Net. Два года спустя была переписана еще одна версия (назовем ее версией M), а через два года пришло время конвертировать последнюю оставшуюся версию (назовем ее версией C). Мы работаем в течение одного года и собираемся начать производство на этой неделе.
Во время преобразований было решено не преобразовывать ничего, что было продано в качестве внешнего модуля; они были встроены в VB6 и использовали несколько элементов управления из BeCubed и FarPoint . Есть два таких модуля в версии M и три модуля в версии C.
Каждый модуль имеет свой собственный установщик MSI, который тихо запускается установщиком основного продукта.
Ошибка
Во время производства мы обнаружили ошибку: когда на новом компьютере установлена версия C, а затем установлена версия M, мы получаем сообщение, как только в версии C открывается внешний модуль:
После нажатия Ok модуль работает. Кроме того, этого не происходит, если они установлены в любом другом порядке, и оба модуля в версии М. работают отлично.
Другие детали
- Все файлы OCX и DLL сравнивались во всех настройках модуля; файлы идентичны.
- Все модули работают, когда установлена только одна версия M или C или когда M установлен первым.
- У нас есть лицензии на все используемое нами программное обеспечение, включая BeCubed.
Кто-нибудь знает, что может вызвать такую ошибку, что может быть возможным решением?