Google и Microsoft устанавливают приложения в папку AppData, почему не я? - PullRequest
2 голосов
/ 09 февраля 2009

Допустимо ли устанавливать приложение в папку AppData? Оба Google Talk и Chrome не установлены в папке Program Files по умолчанию. Они устанавливаются в папку AppData пользователя. Microsoft делает то же самое с ClickOnce ...

Я бы хотел, чтобы мое приложение самообновлялось, но при установке в папку Program Files оно не работает. В Windows Vista (2008 и Seven) приложение не может писать в папке Program Files. Я понимаю, что ответственность несет UAC, но он не позволяет моему приложению самостоятельно обновляться.

В случае, если я хотел бы развернуть в папке AppData для решения проблем безопасности, как мне указать моему проекту установки MSI для установки в AppData ? Есть идеи?

Спасибо!

ОБНОВЛЕНИЕ : Я не могу использовать ClickOnce, поскольку для него требуется сертификат. Я не хочу тратить 200 $ / год на сертификат.

Ответы [ 5 ]

5 голосов
/ 03 июля 2009

clickonce delployments может быть подписано не ранее VS 2008

2 голосов
/ 09 февраля 2009

Вы ошибаетесь в ключевой точке:

Я понимаю, что UAC является ответственным

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

Вы как бы ответили на свой вопрос: если вы хотите установить в папку AppData, просто воспользуйтесь установщиком ClickOnce.

1 голос
/ 06 июля 2009

В Windows 7 новый MSI 5.0 поддерживает истинные установки «для пользователя», для которых не требуется повышение уровня контроля учетных записей - теперь существует каталог «Program Files» для пользователя. Вот разговор PDC для получения дополнительной информации:

http://channel9.msdn.com/pdc2008/PC42/

1 голос
/ 10 февраля 2009

Какой самообновляющийся фреймворк вы используете?

Одна из первоначальных целей ClickOnce - это безболезненный метод установки. Установка немного больше, чем XCOPY, и практически гарантированно не запутается с остальной системой. Это одна из причин, по которой MS выбрала AppData вместо Program Files. Гораздо менее вероятно, что вы повредите всю систему, если будете записывать файлы только в AppData.

Если ваша пользовательская структура хочет быть самообновляющейся, а также иметь одного пользователя, установка с низким уровнем воздействия, AppData не может быть плохим выбором. На самом деле все, что находится в каталоге Users, является лучшим местом, чем Program Files.

0 голосов
/ 03 июля 2009

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

...