Почему я должен установить для совместимости версий значение «Нет совместимости» из «Двоичная совместимость», а затем вернуться к «Двоичная совместимость», чтобы все заработало?

Мой проект изначально был настроен на двоичную совместимость, но он не строился. Поэтому я сначала установил для него значение «Без совместимости», так он отлично строился. Затем я вернул его к двоичной совместимости и перезаписал ранее сгенерированный файл, все заработало нормально.

Почему это должно произойти?


person Muhammad Farhan    schedule 13.04.2010    source источник


Ответы (2)


Я бы рискнул предположить, что бинарное совместимое местоположение, которое вы используете, - это сам исполняемый файл, а не сохраненная версия bincompat.

Изменяя любой открытый интерфейс com в коде, бинарная совместимость будет нарушена (вы можете обойтись без расширения интерфейсов, но не изменением существующих/типов), что предотвратило сборку.

При настройке сборки без совместимости проверки отбрасываются, а исполняемый файл создается.

Затем вы изменили его обратно на двоичный, и именно здесь/почему я думаю, что вы указываете двоичную совместимую версию на сам встроенный исполняемый файл, а не на отдельную копию, поэтому исполняемый файл был автоматически совместим с самим собой и позволял ему собираться.

person Andrew    schedule 13.04.2010
comment
+1 Рекомендуется хранить отдельный файл в качестве местоположения, совместимого с бинарными файлами, отдельно от ваших промежуточных сборок исполняемого файла. Так же, как написано в инструкции. PS Фархан, прочитайте руководство, бинарная совместимость важна и хорошо объяснена. msdn.microsoft.com/en-us/library /aa733706(v=VS.60).aspx - person MarkJ; 13.04.2010

Я думаю, что в VB6 есть ошибка, которая может открывать ссылку на dll/exe и не выпускать ее, поэтому, когда вы используете двоичную совместимость, поэтому иногда может помочь просто закрыть VB6, снова открыть его и собрать.

person Hans Olsson    schedule 13.04.2010