2009-05-25 2 views
3

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

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

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

ответ

1

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

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

+0

Я согласен с вами в теории. Частью проблемы является наш процесс разработки, который выпускается на ранней стадии, часто выпускается. У нас уже есть процесс, который обнаружит обновление, а затем предложит загрузить и запустить программу установки, чтобы обновить ее. Это вызвало проблему с одним клиентом, в частности с тем, кто заблокировал компьютеры, и ИТ-службы должны делать обновления. Поскольку у нас есть примерно обновление в неделю, это было довольно неприятно для их ИТ-отдела. Жалобы их ИТ-отдела стали причиной для этого. –

+0

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

0

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

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

1

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

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

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

Предлагаю полностью отказаться от установки программных файлов и просто установить программу в систему папок пользователя по адресу <userfolder>\AppData\ProgramName.

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

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

+0

На самом деле есть два отдельных приложения, над которыми я работаю. Один из них - это киоск, который нужно обновлять без какого-либо взаимодействия с пользователем. Clickonce требует, чтобы пользователь нажимал пару раз для установки обновления, поэтому он не соответствует моим требованиям для этого приложения, и я надеялся использовать тот же метод обновления для обоих приложений. –

+0

Ну, я все же думаю, что ClickOnce будет лучшим решением - полностью бесшумное обновление - это не совсем лучший пользовательский интерфейс, IMO, но вы все равно можете решить свою проблему, установив его в систему папок пользователя, а не в папку Program Files , Ваша программа работает с разрешениями пользователя, и пользователь может читать/писать в AppData без проблем. Badabing, badaboom, не нужно поднимать. – Randolpho

1

Пара вещей:

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

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

Cheers!

Edit:

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

0

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

Смежные вопросы