Существует ли стандартный путь к.NET приложения Winforms для автообновления?

Я сделал вещи, подобные этому. То, что я обычно делаю, удостоверяются, что все атрибуты сериализации XML находятся на реальном классе, и просто имеют свойства на том вызове класса до базовых классов (при необходимости) для получения информации, которая будет de/serialized, когда сериализатор обратится к тем свойствам. Это немного больше кодирует работу, но это действительно работает намного лучше, чем попытка вынудить сериализатор просто сделать правильную вещь.

9
задан Joel Coehoorn 16 November 2009 в 17:32
поделиться

4 ответа

+1 к ответу ClickOnce, но я хотел бы сделать несколько комментариев и по этому поводу:

Обычно, когда кто-то впервые смотрит на ClickOnce, они обнаруживают, что он добавляет число о новых ограничениях на то, что разрешено их приложению. Они почти всегда нарушают хотя бы одно из них и возвращаются, заявляя, что ClickOnce для них не работает, потому что x, y и z больше не работают.

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

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

Глядя на этот вариант использования, последний пункт особенно убийственен. В конце концов, большинство небольших ограничений для приложений ClickOnce требуют одного из следующих действий:

  1. Доступ администратора во время выполнения, даже кратковременный
  2. Доступ администратора во время обновления

Иногда не очевидно, что вы нужен этот доступ или зачем вам этот доступ, но, в конце концов, это обычно то, к чему все сводится. Хотите зарегистрировать dll в системе или обновить файл в папке Program Files? По умолчанию для этого требуется доступ администратора. Необходимо установить или обновить службу Windows? Доступ администратора. Хотите запустить установщик MSI для стороннего компонента? Вам нужны права администратора для запуска msi. Хотите прослушивать TCP-порт? Вы уловили идею.

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

9
ответ дан 4 December 2019 в 10:32
поделиться

Обновление AppLife стоит каждого цента, которое оно стоит.

1
ответ дан 4 December 2019 в 10:32
поделиться
2
ответ дан 4 December 2019 в 10:32
поделиться

Вы можете попробовать ClickOnce, я думаю, это возможно.

7
ответ дан 4 December 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: