В какую целевую папку я должен установить приложение, для которого никогда не потребуется повышение уровня uac? - PullRequest
3 голосов
/ 30 декабря 2011

У меня есть приложение, и я работаю над установщиком для него. Предполагая, что я хочу, чтобы установка не требовала повышения прав, и я хочу, чтобы само приложение никогда не требовало повышения прав, и я хочу, чтобы средство обновления для приложения (которое является встроенным) никогда не требовало повышения прав, куда мне устанавливать приложение?

Предостережения:

  1. Это приложение не подписано.
  2. Я в порядке, если каждый пользователь должен установить его отдельно под своим профилем.
  3. Могу ли я использовать реестр при установке и выполнить ту же задачу?
  4. Единственные записи, которые он делает, относятся к файлам настроек / конфигурации.
  5. .NET 4 приложение.

Ответы [ 2 ]

3 голосов
/ 30 декабря 2011

Распространенным выбором является локальная папка appdata, возвращаемая SHGetFolderPath(CSIDL_LOCAL_APPDATA) (Win2K и более поздние версии) или SHGetKnownFolderPath(FOLDERID_LocalAppData) (Vista и более поздние версии).

Этот возвращаемый путь выглядит примерно так:

  • "C: \ Users \ arx \ AppData \ Local" (Vista и более поздние версии)
  • «C: \ Documents and Settings \ arx \ Локальные настройки \ Данные приложения» (до Vista)

Нормально создавать здесь папки с именами компаний и приложений, поэтому вы получите путь, подобный следующему:

"C: \ Users \ ARX \ AppData \ Local \ BlahSoft \ BlahApplication"

Обновление

Если вы хотите этот путь из .Net, вам нужно Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

2 голосов
/ 03 января 2012

Ваш вопрос помечен как WIX, так и .NET;оба имеют разные синтаксисы для путей известных папок.Команда .NET для получения папки текущего пользовательского приложения: Environment.GetFolderPath(Environment.SpecialFolder.Programs).

Если вы хотите установить по пути WIX, она имеет предопределенные свойства для каждой известной папки;[ProgramFilesFolder] находится в 32-битной папке приложения, а [ProgramFiles64Folder] - в 64-битной папке.

...