Проблема с проектом установки Visual Studio 2010 - PullRequest
1 голос
/ 23 ноября 2011

Я обнаружил странную проблему при выполнении установочного файла, созданного VS 2010. Установщик должен скопировать некоторые файлы в данные приложения текущего пользователя. Когда я запускаю установщик с правами администратора, все в порядке. Проблема появляется при установке на гостевую учетную запись. Например, я пытаюсь установить приложение на учетную запись guset A. Я должен выбрать запустить как опцию. Я выбираю пользователя B с правами администратора. После установки все файлы копируются в папку App Data пользователя B, а не A, как я ожидал ... почему? Есть ли какое-то решение для этого?

1 Ответ

1 голос
/ 23 ноября 2011

Это называется проектом развертывания, и это устаревшая и сломанная технология - я предлагаю использовать WIX.Эти глупые проекты никогда не были в Visual Studio - они даже не придерживаются основ, как должны работать файлы MSI.

Одна вещь, которую вы не можете приятно контролировать - это запрос на повышение прав, необходимый для активации привилегий администратора.WIX позволяет вам полностью контролировать функции MSI.

Я должен выбрать запуск в качестве опции.Я выбираю пользователя B с правами администратора.После установки все файлы копируются в папку App Data пользователя B, а не A, как я ожидал ... почему?

Ах - логика?Вы устанавливаете КАК ПОЛЬЗОВАТЕЛЬ Б - так что файлы обязательно попадают в папку пользователя Б.

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

Установщик должен скопировать некоторые файлы в данные приложения текущего пользователя.

Недопустимо для определения.Точка.Обычный запуск установки не должен устанавливать ничего в данные приложения пользователя - какой другой пользователь запускает программное обеспечение?Программное обеспечение может делать копии при запуске (из общих данных приложения), но при НОРМАЛЬНОЙ установке (не для установки на пользователя) никогда не следует помещать содержимое в личную папку AppData пользователей.Это нарушение основных принципов MSI.

Symantec располагает хорошей документацией о единственно верном способе сделать это (и извините, проекты установки просто не поддерживают расширенные функции для MSI:

http://www.symantec.com/business/support/index?page=content&id=HOWTO4840

Как гласит:

Чтобы установить файлы в профиль каждого пользователя, необходимо выполнить самовосстановление приложения.

WIXимеет аналогичные ответы в сообщении:

http://windows -installer-xml-wix-toolset.687559.n2.nabble.com / Установка файлов для пользователя s-application-data-folder-td5377311.html

Полагаю, вы не хотите устанавливать пользователя;)

Я также предполагаю, что вы не устанавливаете раздел реестра в соответствии с ICE38 (предупреждение о настройке):

http://msdn.microsoft.com/en-us/library/aa368961%28VS.85%29.aspx

В общем: НЕ ДЕЛАЙТЕ ЭТОГО.Пользователь AppData может / должен произойти, когда пользователь запускает приложение.

...