0

Странная проблема, но это беспокоит меня.Установщик Visual Studio msi не обновляет UI

Когда я попытался развернуть msi, пакет не полностью обновил предыдущую версию. но версия обновлена ​​на панели управления, но не на пользовательском интерфейсе (изменения, внесенные в пользовательский интерфейс, не отражаются).

DetectPreviousVersion = True; 
RemovePreviousVersion =True; 
Installallausers=true; 

Версия продукта имеет большее количество, чем ранее установленная версия, и изменила код продукта для каждой более высокой версии.

код обновления предыдущей установленной версии и новой версии - то же самое.

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

ответ

1

Правильное версионирование вашей DLL файлы и EXE была бы предотвратить это ,

File Versioning Rules

В основе любого инсталлятора является фактической установки файлов. Определение того, является ли установка файла сложным процессом. На самом высоком уровне это определение зависит от того, помечен ли компонент для , к которому принадлежит файл, для установки. После определения, что файл должен быть скопирован, процесс сложный, если в целевой папке существует другой файл с таким же именем. В таких ситуациях, делает определение требует набора правил, связанных с следующими свойствами:

• Версия

• Дата

• Язык

+0

Поскольку это обновление является незначительным изменением в существующей форме, очевидно, что файл будет существовать в целевом местоположении, поэтому правила определения будут проверять версию, дату и язык .. там, где версия применяется к установщику не для каждой dll или форм, используемых в проект. обновление версии вице-версии увеличено даже после того, как форма не была заменена до добавления свойства REINSTALLMODE к amus. вы говорите, должно ли быть также и управление версиями файлов?догадаться, когда установщику предоставляется версия, тогда она применяется ко всем файлам внутри пакета !! делает что-то общее с сборкой внутри. – Jay

+0

Когда я меняю assemblyinfo.cs - [сборка: AssemblyVersion ("1.1.7.0")] [сборка: AssemblyFileVersion ("1.1.7.0")] ... Затем версия установщика до версии 1.1.7 (обновление) .. установка удаляет предыдущую версию, и изменения отражаются без свойства «REINSTALLMODE» ... Версия сборки и fileVersion также должны быть версированы после версии установщика при обновлении, чтобы избежать этой проблемы. – Jay

+0

Оценки сделаны для компонентных файлов ключей. В управляемом мире атрибут AssemblyFileVersion становится записью ресурса версии файла Win32. Во время сборки версия получается и помещается в таблицу файлов. Во время установки процесс costin процесса делает его оценки с использованием информации в таблице файлов и файлов, найденных на диске. Для этой цели AssemblyVersion не нужно обновлять. AssemblyVersion становится важным при размещении файлов в GAC. –

0

возможно дубликат вопрос:

, но и для зрителей ответ добавив дополнительное свойство для пакета MSI с помощью Orca.

REINSTALLMODE=amus 

Амус-обновления на все файлы на обновления omus- обновляет файлы, которые только изменения в установщик определяет

см оригинальный ответ here

+0

Хотя выше работало для меня, но фактическое решение должно быть версией Assemblyinfo.cs версии сборки и AssemblyFileVersion соответственно. – Jay

+0

Только AssemblyFileVersion. –

0

Старые версии визуальных установок студии используется для эффективного удаления всех старых файлов, а затем для установки продукта и его файлов. VS 2008 и более поздние версии требуют обновления файловой версии файлов, которые вы хотите перезаписать при обновлении.