Запустите приложение из документов вместо программных файлов - PullRequest
3 голосов
/ 25 мая 2009

Я работаю над созданием самообновляющегося приложения, и одна проблема, с которой я сталкиваюсь в Vista и Windows 7, должна иметь права администратора для обновления клиента. У меня возникли проблемы с клиентами, у которых пользователи работают с ограниченными разрешениями, и им пришлось бы входить в ИТ-отдел на каждую машину, которая была необходима для обновления клиента, поскольку пользователи не могли.

Возможный обходной путь, который я обдумываю, состоит в том, чтобы приложение запуска было установлено в Program Files как обычно, а реальное приложение, которое оно обновляет, было установлено где-то в пользовательских документах, чтобы они могли обновлять и запускать новые версии без IT вовлекаться.

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

Ответы [ 5 ]

1 голос
/ 25 мая 2009

Пара вещей:

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

Мы решили это почти таким же образом, когда решили реализовать функцию «живого обновления». Но вместо этого мы установили сервис, который работает с правами администратора. Эта служба, в свою очередь, может запускать инсталляторы после обновления программы. С этим типом решения вам даже не нужно перемещать приложение из файлов программы.

Ура!

Edit:

Еще одна приятная вещь, когда служба работает от имени администратора. Это то, что вы могли бы создать с ним связь по именованному каналу и заставить ее делать что-то для вас, как если бы вы не могли это делать как обычный пользователь.

1 голос
/ 25 мая 2009

Так и должно быть. Последнее, чего хотят большинство ИТ-отделов, - это пользователь, случайно обновляющий часть программного обеспечения. Это может иметь всевозможные непреднамеренные побочные эффекты, такие как несовместимость с файлами более старой версии, новые и, возможно, небезопасные функции и т. Д. Именно поэтому ИТ-отделы отключают Центр обновления Windows и выполняют свои обновления вручную контролируемым образом.

Если пользователи хотят обновить версию программного обеспечения, они должны запросить ее в своем ИТ-отделе. Эти компьютеры и инфраструктура не принадлежат им, они просто занимают у них время у компании, в которой они работают, чтобы они могли выполнять свою работу.

1 голос
/ 25 мая 2009

Есть ли проблема с одной установкой вашей программы? Например, он особенно большой?

Вам требуются права администратора для запуска вашей программы?

Если нет, скорее всего, вам не нужна папка Program Files.

Я предлагаю полностью отказаться от установки в Program Files и просто установить свою программу в систему папок пользователя по адресу <userfolder>\AppData\ProgramName.

Если вы используете .NET, обратите внимание на механизм развертывания ClickOnce . У него есть отличная функция самообновления, которая, вероятно, сделает вашу жизнь намного проще.

Редактировать: Только что видел ваше последнее предложение. ClickOnce может заставить пользователя обновить.

0 голосов
/ 29 мая 2009

Возможно, вы можете использовать AppLocker . Это может быть только для Win7, хотя я больше не использую Vista. ;)

0 голосов
/ 25 мая 2009

Заглушка загрузчика - хороший путь. Единственный недостаток - когда вам нужно обновить загрузчик; применяется та же самая начальная проблема (хотя это должно быть довольно редко).

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

...