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

StackOverflow https://stackoverflow.com/questions/73305

Вопрос

При создании setup / MSI с помощью Visual Studio возможно ли выполнить настройку для простого приложения, для установки которого не требуются права администратора?Если это невозможно под Windows XP, возможно ли это под Vista?

Например, простое приложение для работы с изображениями, которое позволяет вставлять фотографии поверх фона.Я полагаю, что для установки в папку Program Files требуются разрешения администратора?Можем ли мы вместо этого установить программу в папку \AppData?

Цель состоит в том, чтобы создать приложение, которое будет устанавливаться для пользователей, не являющихся членами группы администраторов на локальном компьютере, и не будет отображать приглашение UAC в Vista.

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

Обновить:

Можете ли вы упаковать установку "один клик" в обычный установщик setup.exe типа?Вы можете спросить, зачем нам это нужно - причина в том, что у нас есть установщик, который выполняет предварительную проверку и устанавливает все необходимое (например, .NET), а затем мы загружаем и запускаем MSI.Мы также хотели бы отобразить обычный экран запуска программы установки, даже если это единственное, что отображается.Мы не возражаем, если приложение сможет видеть только один пользователь (тот, для кого оно установлено).

Это было полезно?

Решение

ClickOnce - хорошее решение этой проблемы.Если вы перейдете в Свойства проекта> Опубликовать, вы можете настроить параметры для этого.В частности, полезно посмотреть на раздел "Режим установки и настройки":

  • Приложение доступно только онлайн - фактически это приложение "запускается один раз"
  • Приложение также доступно в автономном режиме (запускается из меню "Пуск") - при этом приложение устанавливается на компьютер

На самом деле вам не обязательно использовать материалы для веб-развертывания ClickOnce.Если вы выполните команду Build > Publish, а затем заархивируете содержимое папки publish\, вы сможете эффективно распространять это как установщик.Чтобы сделать процесс еще более плавным, создайте самораспаковывающийся архив из папки, в которой автоматически запускается файл setup.exe.

Даже если вы установите этот способ, если вы решите использовать его, онлайн-обновление все равно будет работать для приложения.Все, что вам нужно сделать, это разместить файлы ClickOnce в Сети и указать URL-адрес на странице свойств публикации проекта.

Другие советы

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

Вы правы в том, что для установки в папку program files с помощью установщика Windows требуются права администратора.На самом деле, весь доступ на запись для доступа к этой папке требуются разрешения администратора, поэтому вам больше не следует хранить свои данные в той же папке, что и ваш исполняемый файл.

К счастью, если вы используете .Net, вы можете использовать развертывание ClickOnce вместо msi, что должно позволить вам устанавливать в папку в профиле каждого пользователя, не требуя прав администратора.

Единственный известный мне способ сделать это - создать приложение ClickOnce в .NET 2.0 +

Если у пользователя вашего приложения установлены правильные предварительные требования, то приложение можно просто "запустить".

Проверьте:

ЕСЛИ UAC включен, вы не сможете выполнять запись в Program Files.Установка в \AppData действительно приведет к установке программы только для одного пользователя.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top