«Определение манифеста обнаруженной сборки не соответствует ссылке на сборку» после установки новой версии - PullRequest
0 голосов
/ 29 апреля 2019

Я создал настольное приложение Windows Forms, используя VS 2015 в Win 10. Когда я выпускаю новую версию, я бы хотел, чтобы пользователи могли запускать установщик без предварительного удаления каких-либо более ранних версий. Для этого я создаю новый код продукта на вкладке «Общая информация» InstallShield LE, которая включена в VS 2015. Это единственный способ установки новых версий поверх старых. Представленные InstallShield подробные описания того, как создавать обновленные версии с использованием UpdateCode, похоже, не работают. После установки старые и новые версии появляются в списке, показанном в Панели управления-> Программы и компоненты.

Я создал новый самораспаковывающийся установщик .exe для новой версии, содержащий ссылку на Глобальную версию 2.1.68, но когда я запускаю его в среде Win 7 на другом компьютере с более ранней версией (2.1.62) ссылаясь на сборку Global Version 2.1.62 была установлена ​​и открыта конкретная форма, я получаю сообщение об исключении

Не удалось загрузить файл или сборку 'Global, версия = 2.1.62.0, Culture = Neutral, PublicKeyToken = a95f9488c29' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.

Текст исключения:

System.IO.File.LoadException: не удалось загрузить файл или сборку 'Global, версия = 2.1.62.0, Culture = Neutral, PublicKeyToken = a95f9488c29 в ...

Если я удаляю Версию 2.1.62 через Панель управления и устанавливаю Версию 2.1.68 приложения, ошибка не возникает.

Я проверил ссылки C # на Global dll, и все они указывают на обновленную dll.

Я бы хотел, чтобы пользователи могли устанавливать новые версии без предварительного удаления старых, но похоже, что что-то из установки V 2.1.62 переносится в более новую установку и пытается найти старую версию Global .dll

1 Ответ

0 голосов
/ 29 апреля 2019

Проблема заключалась в том, что я не обновил номер версии подпроекта, ссылающегося на global.dll, поэтому установка новой версии не обновила ту dll, которая продолжала искать старую (v 2.1.62) версия global.dll.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...