У меня есть очень простой проект развертывания VS2005, целью которого является установка для всех пользователей ПК.
Все файлы приложения записываются в %Program Files%\MyProg. Ярлык создается в меню «Пуск» и в папке автозагрузки. Никаких настроек реестра или чего-то еще не создается. Я установил для InstallAllUsers значение true.
Созданный MSI работает нормально и устанавливает программное обеспечение. Без проблем работает при запуске под учетной записью пользователя, из-под которого была установлена.
При входе в систему под другим пользователем меню «Пуск» и значки запуска присутствуют. Он пытается запустить приложение, однако появляется окно установки, в котором говорится, что «функция, которую вы пытаетесь использовать, находится на сетевом ресурсе, который недоступен». Программа установки продолжит работу только в том случае, если будет указан исходный файл MSI.
Почему это происходит? Я хочу, чтобы мое приложение было установлено полностью для всех пользователей, если оно установлено одним пользователем.
изменить: решение
Я получал подобные сообщения журнала событий, как показано на этой странице. В моем случае это оказалось так же просто, как убедиться, что в пользовательском меню программы атрибут «Всегда создавать» установлен на false. Если бы это было правдой, Windows попыталась бы воссоздать папку, когда новый пользователь вошел в систему. Это каким-то образом потребовало вызова программы установки и, таким образом, привело к подсказкам «вставьте установочный носитель».