Установщик в один клик для консольного приложения .NET

#c# #.net

#c# #.net

Вопрос:

У меня есть простое консольное приложение, написанное на .NET. Мне нужно создать установщик для консольного приложения и поместить его в каталог сервера. Этого можно достичь с помощью проекта установки в MS Visual Studio. Я также хочу, чтобы всякий раз, когда я открываю приложение, оно проверяло наличие новой версии. Если новая версия существует, она ее устанавливает. Есть какие-либо рекомендации о том, как добиться этого в .NET?

Комментарии:

1. Итак, ваш вопрос действительно касается проверки наличия новых версий?

2. На самом деле не проверено наличие новых версий! Я помню, что для моего приложения Windows Forms оно каким-то образом автоматически сделало это после установки. Когда пользователь нажимает на приложение Windows Forms и появляется новая версия, пользователю предлагается установить новую версию.

Ответ №1:

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

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