Сброс совместимости проекта в vb6
когда мы нарушаем совместимость в dll VB6, я должен сделать следующее:
- нет бинарной совместимости
- перекомпиляция
- снова установить совместимость
- удалить ссылку на измененную dll из всех проектов, которые ее используют
- добавить ссылку на все проекты, которые используют его
- перекомпилировать все эти проекты
- сделайте то же самое для любых проектов, которые используют эти проекты и т. д.
Of конечно, это немного упрощенно, но любой, кто делал это раньше, должен знать, о чем я говорю.
мой вопрос: вы нашли лучший способ сделать это, или вы нашли какие-либо (не слишком дорогие) инструменты для облегчения этого процесса? Или еще лучше, вы создали тот, который вы можете поделиться со мной:)
обратите внимание, что я спрашиваю, Как сделать этот процесс проще, а не как его избежать. Поэтому, пожалуйста, не давайте ответов о том, насколько плохо нарушать совместимость и что мы не стоит этого делать. Я живу в реальном мире, где есть вещи вне моего контроля, и я просто пытаюсь разобраться с тем, что у меня есть.
5 ответов
в предыдущей работе у меня было огромное приложение VB6, которое содержало десятки DLL VB6, которые мы ссылались на проекты в нашей проектной группе. Мы часто нарушали совместимость, и ручное обновление ссылок, как вы описываете, не было вариантом.
мы изначально разработали инструмент, который будет обновлять ссылки во всех .vbp файлы в папке после взлома и перекомпиляции, но я в конечном итоге нашел визуальную сборку с помощью программного обеспечения Kinook (www.kinook.com) который мог бы иметь дело с этим автоматически.
Я использовал их решения в течение многих лет с успехом. Что хорошего в их действии "Make VB6" (http://www.kinook.com/VisBuildPro/Manual/makevb6.htm) заключается в том, что он может построить дерево зависимостей и перестроить все ваши проекты в вашей группе проектов в правильном порядке, обновляя ссылки соответственно.
для вашего сценария вам нужно будет установить параметр "установить совместимость версий перед построением" на "нет совместимости", а затем проверить Установите флажок "установить двоичную совместимость", чтобы проекты возвращались к двоичной совместимости после построения.
Если у вас есть проекты, для которых вам нужно поддерживать двоичную совместимость, просто оставьте их за пределами .vbg и его не восстановить его.
Дополнительные Образцы Visual Basic 5.0 & 6.0 предлагает Надстройка Бинарной Совместимости это может быть полезно. Вижу ReadMe.txt
и Revised Binary Compatibility.doc
файлы после "установки" (есть шаги, которые нужно предпринять после запуска загрузки).
эта загрузка включает в себя документ "пересмотренная бинарная совместимость", а также надстройку SyncCompt.файл DLL. Бинарная совместимость, реализованная в Visual Basic 5.0 и Visual Basic 6.0, гарантирует, что новые версии доставка продуктов полностью совместимы с более старыми версиями. Документ объясняет проблемы вокруг двоичной совместимости и GUID версии и вводит DLL. Надстройка DLL создает новый файл совместимости для стабилизации вашего продукта (за исключением стандартных EXE, которые не имеют двоичной совместимости). Этот инструмент работает только в среде Microsoft Windows NT®.
Это может или не может решить вашу проблему.
вам не нужно изменять настройку совместимости. Однако вам необходимо убедиться, что dll (или exe), на которую вы ссылаетесь в настройках совместимости, -не местоположение, в которое вы собираетесь скомпилироваться.
мы делаем что-то подобное, поэтому у нас есть следующая структура:
C:\ProductName\Bin
- содержит все живые сборки
C:\ProductName\Bin\Compatibility
- содержит все сборки, как они были в последней сборке
после того, как мы делаем сборка (которую мы делаем автоматически, обстреливая VB6.exe) мы перемещаем все в \Bin
to \Bin\Compatibility
Я нашел совместимость версий в компонентах ActiveX серия на MSDN очень поучительная по вопросу совместимости и когда/как ее сломать. Я публикую это в основном для дальнейшего использования.
Я решаю проблему, не сохраняя информацию о совместимости.
Я удаляю строку CompatibleEXE32={dllname} из .vbp файлов
Я никогда не спасти .vbp-файлы после сборки, чтобы ссылка не возвращалась.