У меня есть приложение на C # и проект установки Visual Studio (2010) с ним.В моем проекте установки я использую InstallAllUsers = True
.Кроме того, мое приложение должно запускаться при запуске, поэтому в User's Startup Folder
добавляется ярлык.
Поэтому я устанавливаю свое приложение как пользователь Bob (из общего ресурса), а затем выхожу из системы и захожу как пользователь Alice.Алиса получает диалоговое окно, которое говорит:
Функция, которую вы пытаетесь использовать, находится на недоступном сетевом ресурсе.
Он предоставляет сетевой путь, из которого MSIбыл установлен.Так что, в основном, он ищет MSI для общего ресурса, к которому у Алисы нет доступа.Это многократно воспроизводится, если Алиса пытается вручную запустить ссылку «Запуск». Однако Алиса может напрямую запустить exe-файл из места установки, что прекрасно работает.
Я не до конца понимаю, почему он ищет MSI, но я думаю, что имеет смысл, чтоприложение не может быть полностью установлено одним пользователем для другого пользователя, поэтому MSI необходим для завершения установки.
Но если это так, то я не понимаю, почему MSI требуется только при запуске по ссылке Startup, а не из exe-файла напрямую.
Мой вопроснесколько частей:
- Есть ли ожидаемое поведение для опции
InstallAllUsers
? - Если так, как я могу убедиться, что мое приложение полностью установлено для всех пользователей?
- Нужно ли копировать MSI локально и гарантировать, что он не будет удален до того, как у каждого пользователя будет возможность войти в систему?