Как нам создать установщик, чем не требовать прав администратора? - PullRequest
6 голосов
/ 16 сентября 2008

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

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

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

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

Обновление:

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

Ответы [ 4 ]

4 голосов
/ 16 сентября 2008

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

  • Приложение доступно только онлайн - по сути, это приложение, запускаемое один раз
  • Приложение также доступно в автономном режиме (запускается из меню «Пуск») - приложение устанавливается на ПК

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

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

0 голосов
/ 16 сентября 2008

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

.

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

Выезд:

0 голосов
/ 16 сентября 2008

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

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

0 голосов
/ 16 сентября 2008

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

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

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

...