Как создать установщик, который не требует разрешений администратора?

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

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

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

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

обновление:

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

4 ответов


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

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

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

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


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

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

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


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

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

Проверьте:


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

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