Может ли приложение .NET самостоятельно обновляться в фоновом режиме, как Google Chrome? - PullRequest
4 голосов
/ 12 января 2011

Google Chrome обновляется в фоновом режиме.От пользователя не потребуется никаких действий.Я считаю, что это очень хороший и удобный способ обновления приложения.Кто-нибудь знает точно, как это делается технически, и если бы вы могли сделать то же самое для приложения .NET (WPF)?

Ответы [ 2 ]

1 голос
/ 12 января 2011

Да.Вы можете использовать ClickOnce или ShadowCopying.

Вот пример ShadowCopying с хорошим описанием, который показывает пример веб-сервера, но тот жеТехника может быть применена к настольному приложению.Еще один хороший пример: здесь .

0 голосов
/ 12 января 2011

ClickOnce - ужасное решение, потому что оно не делает это в фоновом режиме, оно проверяет только при запуске и может значительно замедлить время запуска.

Chrome, с другой стороны, периодически проверяет во время работы приложения, загружает обновление в автоматическом режиме, а затем устанавливает его, когда вы говорите «ОК, почему бы и нет».

Существует очень небольшая задержка с точки зрения пользователя, и материал просто продолжает пыхтеть.

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

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

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

...