Установщик пакета установки .NET - PullRequest
4 голосов
/ 24 марта 2010

У меня есть проект пакета установки .NET 3.5, который успешно устанавливает мое приложение.

Пакет установки развертывает несколько (около 70) пользовательских файлов для использования из приложения.

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

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

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

Кто-нибудь знает, что нужно для достижения этого?

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 07 октября 2010

С http://msdn.microsoft.com/en-us/library/kz0ke5xt%28v=VS.100%29.aspx

» Как отключить восстановление файла, который пользователи должны будут изменять или удалять?

Visual Studio создает объявленные ярлыки, чтобы при запуске программы проверять, существуют ли все ее файлы. Чтобы изменить это поведение и заставить его не восстанавливать файл, выберите файлы в проекте установки и измените свойство Condition на NOT REINSTALL, чтобы файл не переустанавливался при восстановлении, а его свойство Transitive - TRUE, чтобы условие было переоценены. Это приведет к тому, что установщик будет мигать на экране в первый раз после удаления файла, поскольку он проверяет, что файл не следует переустанавливать, но после этого вы не увидите установщик. «

1 голос
/ 24 марта 2010

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

0 голосов
/ 24 марта 2010

Установщик Windows поддерживает три типа обновлений продукта: крупные обновления, незначительные обновления и небольшие обновления. Краткий обзор того, какое обновление использовать и при каких обстоятельствах можно найти здесь: http://helpnet.flexerasoftware.com/robo/projects/installshield12helplib/MajorMinorSmall.htm

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

В InstallShield (продукт установки, с которым я знаком), есть GUID продукта и GUID обновления . GUID обновления всегда остается одинаковым в вашем семействе продуктов разных версий. Идентификатор GUID продукта меняется с каждой новой ОСНОВНОЙ или ОСНОВНОЙ версией . В общем, если вы следуете этому шаблону, а затем указываете удаление файлов в новой версии, установщик должен интерпретировать удаления файлов как обновления, и вы не должны получать никаких ошибок при последующем выполнении вновь установленной версии.

...