При использовании InstallShield LE, MSI содержит устаревшую версию одной сборки, но текущие версии других - PullRequest
3 голосов
/ 13 марта 2012

Я использую Visual Studio 2010, InstallShield LE для решения с общим количеством около 10 проектов.

Я выбрал основной вывод основного графического интерфейса проекта для части 'files', установленной в подкаталог Program Files, довольно стандартный.

Я собрал установщик несколько недель назад и установил его на свой тестовый компьютер, все работало нормально. С тех пор я внес изменения в каждый проект решения. Сегодня я увеличил версию сборки и перестроил свой проект установки, чтобы продолжить тестирование.

После установки, в каталоге установки файлов программы, я заметил, что одна из сборок моего проекта по-прежнему отображает предыдущую версию 1.0.0.0, а дата файла старше месяца. Другие сборки в каталоге показывают текущие версии и текущую дату изменения.

Я попытался удалить все папки bin и obj в моем каталоге решений, а также в папке проекта установщика. Я переустановил, но проблема остается.

Я искал в Google, но, поскольку проблема странная, хорошая поисковая фраза неуловима.

Очевидно, что мне нужно, чтобы в установщик msi была включена самая последняя версия моих сборок.

Спасибо за любую помощь или предложения!

Ответы [ 4 ]

1 голос
/ 23 ноября 2012

Сбросьте InstallShield и используйте WiX .., вы никогда не оглядываетесь назад.

WiX имеет, например, UpgradeCode, чтобы помочь вам контролировать версии проверки функций.

1 голос
/ 17 ноября 2012

Вам нужно сделать две вещи: извлечь фактический файл в MSI, чтобы узнать, есть ли обновленный бинарный файл в MSI, и получить подробный журнал установки, ищущий, что говорит установщик Windows о компоненте, который содержит сборкуобсуждаемый.Кстати, у вас есть каждый файл сборки в качестве файла ключа своего собственного компонента, не так ли?Установщик Windows проверяет только обновления версий по их путям.

1 голос
/ 22 ноября 2012

У меня раньше была такая же проблема с проектом установки VS.Я бы дважды проверил ссылки на сборки в вашем решении, которые ссылаются на проект со старой DLL.Вы должны просто иметь возможность взглянуть на окно «Свойства», чтобы увидеть версию, на которую оно ссылается.В моем случае он будет ссылаться на DLL из папки bin другого проекта, а не самого проекта.

Я знаю, что вы удалили все папки bin и obj, но, вероятно, стоит попробовать.

Если вы найдете ссылку на проблему, просто удалите и повторно добавьте ее, и все будет хорошо.

1 голос
/ 13 марта 2012

Вы хотите прочитать:

Версия файла по умолчанию

Примечание. Убедитесь, что вы сравниваете AssemblyFileVersion. Важен не атрибут AssemblyVersion, а атрибут AssemblyFileVersion. Первый используется контрактами GAC и Strong Name, а второй - в структуру Windows Native FileVersion.

...