Отключить объявленные ассоциации файлов в проекте VS Setup (Installer) - PullRequest
0 голосов
/ 25 марта 2009

Я использую проект установки в VS 2005, и я узнал все о "радостях" рекламируемых ярлыков.

Мой проект создает ярлыки для программы в рабочем столе и в меню «Пуск», и всякий раз, когда они запускаются, MSI переустанавливает приложение (поскольку установленные файлы изменились). Я также создал файловую ассоциацию для своего приложения, которая делает то же самое.

Я выяснил, как настроить vbscript, который я могу запустить после сборки, чтобы отключить объявленные ярлыки (используя DISABLEADVTSHORTCUTS = 1), однако я затрудняюсь понять, как добиться той же функциональности с файловые ассоциации!

UPDATE: Позвольте мне объяснить, что я делаю, и тогда вы можете сказать мне, если есть лучший способ. Я включаю отдельную утилиту, от которой зависит мое приложение. Я не хотел добавлять каждый файл этой утилиты в качестве зависимости, потому что он действительно загромождает проект установки, поэтому я сжал его и просто добавил zip.

Затем я запускаю реализацию Installer и переопределяю OnAfterInstall, чтобы разархивировать утилиту в нужное место, затем удаляю zip утилиты. Это удаление служебной zip, которая запускает весь процесс установки / восстановления при запуске объявленного ярлыка.

Так что я думаю, что мои решения: а) отключить объявленные ярлыки и объявленные ассоциации файлов, или б) заставить установщик MSI не запускать установку / восстановление отсутствующего zip-файла.

Ответы [ 2 ]

2 голосов
/ 25 марта 2009

Вопрос ПОЧЕМУ изменились установленные файлы?

Преимущества восстановления MSI состоят в том, что если что-то испортилось, вирус заразил ваше приложение или какой-то глупый пользователь удалил неправильные файлы / записи реестра, тогда проверка устойчивости Windows isntaller запускается и восстанавливает все ваши файлы.

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

Например, ты не пишешь изменения материала в программных файлах? Как ваше приложение работает с ограниченной учетной записью пользователя? На терминальном сервере? На висте? Ни один из этих сценариев не разрешит запись в папку с файлами программы (или в любое защищенное местоположение для компьютера)

Одним из способов предотвращения такого поведения было бы:

  • Установить файлы конфигурации по умолчанию в All Users\Application Data
  • Скопируйте их при первом запуске в Username\Application Data (он же %AppData%)
  • Обновлять только пользовательские файлы. Это предотвращает потерю / изменение конфигурации во время восстановления MSI.

ОБНОВЛЕНИЕ: Попробуйте не устанавливать ZIP в качестве "файла ключа" в конкретном компоненте, я думаю, что установщик Windows проверяет только то, что файлы ключа не изменились. Я думаю, что вы, вероятно, очень скоро столкнетесь с ограничениями проектов установки VS2005, поэтому стоит проверить WiX , если у вас есть время. Кроме того, вы обнаружите, что проекты установки Windows Installer почти всегда загромождены, так как наличие сотен или тысяч компонентов является природой зверя.

0 голосов
/ 08 апреля 2009

Попробуйте пометить свойство файла .zip Exclude = true в проекте установки, это сделает файл доступным для программы установки без установки на целевой компьютер.

Тем не менее, я согласен с Сашей в том, что установочные проекты часто имеют сотни зависимостей.

...