У меня есть сценарий,
На определенной машине я устанавливаю собственное программное обеспечение с помощью установщика MSI. Установщик MSI создается с тегом PerMachine
, поэтому программное обеспечение доступно для всех пользователей этой машины.
Сейчас,
Теперь на той же машине я зашел под другим пользователем.
Несколько моментов:
Как остановить это?
Пожалуйста помоги
Самовосстановление: Самовосстановление установщика Windows является причиной поведения, которое вы видите. Смотрите ссылку для объяснения того, что происходит. Подробнее смотрите здесь - несколько ссылок с информацией по самостоятельному ремонту с разных сторон.
Краткое пояснение. По сути, запуск рекламируемого ярлыка запускает проверку целостности установленных файлов, и если обнаруживается, что файл или параметр реестра отсутствует, происходит самовосстановление. Он заменит отсутствующие файлы и настройки. Во время этого процесса он иногда перезаписывает измененные файлы настроек - проблема, которую вы описываете (из-за различных странностей перезаписи файлов установщика Windows - длинный ответ с различными намеками).
Исправление?: Мое предпочтительное решение для этого — не устанавливать файлы настроек и не обновлять их, а скорее создавать их приложением при первом запуске — либо один файл для каждого пользователя, либо общий для всех пользователей. Вы также можете использовать доступную только для чтения копию устанавливаемого файла настроек для копирования в новый файл, который вы создаете и обновляете. Я также рекомендую поместить эти файлы в доступное для записи место в профиле пользователя, а не в основной папке. Ваша установка никогда не будет мешать этим сгенерированным файлам. Вы также можете попробовать установить компонент хостинга для файлов «постоянно» и «никогда не перезаписывать». Не очень аккуратно. Вот целый разглагольствования на эту тему. Самое лучшее решение, на мой взгляд, это хранить настройки в базах данных и получать их при запуске. Это позволяет хорошо контролировать все настройки. Обратите внимание на проблемы с сетью и брандмауэром.
Надеюсь, это ответит на ваш вопрос. Вы устанавливаете файлы IIS? Я считаю, что коммерческий инструмент Advanced Installer имеет лучший список функций для установки IIS, хотя мне не хватает данных, чтобы сделать вывод. Несколько видео здесь: https://www.youtube.com/c/advancedinstaller/search?query=IIS - WiX тоже очень хорош, но без приятного графического интерфейса Advanced Installer.
Примечание: вам вообще не следует ничего устанавливать в корень C:\. Установщик Windows активно пытается его усложнить, и вероятны побочные эффекты. Однако вы можете настроить таргетинг на папки IIS, где бы они ни находились.
Получил некоторые ответы на вышеуказанные вопросы, файлы возвращаются для нового, созданного пользователем, который запускает приложение только в первый раз. Если мы удалили продукт, установили его снова и изменили файлы через пользователя-администратора, а затем войдите в систему с тем же другим пользователя, у которого были восстановлены файлы, теперь файлы не восстановлены.
Что вы указали в качестве ключевого пути для компонентов, устанавливающих эти файлы? Это путь к файлу или путь к реестру?
Спасибо за этот подробный ответ. Это очень помогает мне правильно понять проблему, но я столкнулся с еще одним странным сценарием: я запустил ту же установку на своем другом ноутбуке с Windows 10 и выполнил описанный выше сценарий как есть, но файлы не восстанавливаются для другого пользователя, хотя в первый раз появляется индикатор выполнения MSI, но файлы не возвращаются.