Приложение ClickOnce пропускает запрос на обновление (или не запускается при выборе пропуска) - PullRequest
22 голосов
/ 28 октября 2009

Я обновил свое приложение ClickOnce, а затем, когда пользователь запускает, его спрашивают, хотят ли они установить новую версию.

Я работаю в строго контролируемой среде. Когда доступно обновление, оно должно быть установлено (обратная совместимость с базой данных не гарантируется старыми версиями).

Другим вариантом является сбой прогона, если нажата кнопка пропуска (это тоже хорошо работает).

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

Ответы [ 5 ]

41 голосов
/ 28 октября 2009

Эта статья отвечает на ваш вопрос. Я указываю вам на статью вместо того, чтобы просто публиковать ответ, потому что все в статье стоит знать.

http://www.sayedhashimi.com/CategoryView,category,ClickOnce.aspx

Ниже приводится соответствующая выдержка из статьи:

принудительное обновление ClickOnce

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

Есть три вещи, которые нужно знать уважение к принудительному обновлению пользователей:

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

2) Если ваше приложение установлено приложение, вы можете заставить обновления по используя MinimumRequiredVersion приписывать. Если вы публикуете свой приложение с помощью Visual Studio, вы можете установить это свойство из обновлений Dialog.

3) Последнее, что следует отметить, это если ваше приложение установлено приложение (и вы не установили Атрибут MinimumRequiredVersion) ClickOnce предложит пользователю «Обновление доступно» диалоговое окно ТОЛЬКО если Пользователь запускает приложение из Ярлык меню «Пуск». То есть, если приложение установлено приложение и пользователь запускает приложение из URL, ClickOnce принудительно обновляет.


Я также нашел другую хорошую статью:

ClickOnce: простота и надежность развертывания Smart Client

6 голосов
/ 28 июля 2015

Это аккуратно сработало для меня. Добавьте в файл проекта следующее:

<UpdateRequired>true</UpdateRequired>
<MinimumRequiredVersion>$(ApplicationVersion)</MinimumRequiredVersion>

Обратите внимание, что ApplicationVersion не может иметь значение типа 1.0.0.* в файле проекта, и оно должно быть увеличено во время сборки для автоматического обновления.

Если используется TeamCity , для увеличения номера версии перейдите на страницу Конфигурация сборки для своего проекта и установите следующую Системное свойство :

system.ApplicationVersion = %build.number%

Вы также можете получить MSBuild для увеличения версии по времени примерно так:

<UpdateRequired>true</UpdateRequired>
<BuildNumber>$([System.DateTime]::Now.ToString(yyyyMMdd))</BuildNumber>
<RevisionNumber>$([System.DateTime]::Now.ToString(mmss))</RevisionNumber>
<ApplicationVersion>1.0.$(BuildNumber).$(RevisionNumber)</ApplicationVersion>
<MinimumRequiredVersion>$(ApplicationVersion)</MinimumRequiredVersion>
1 голос
/ 19 декабря 2016

В дополнение к ответу Дэвида просто установите пакет nuget AutoUpdateProjectsMinimumRequiredClickOnceVersion в ваш проект. Как только ваш проект настроен на проверку обновлений и использование минимально необходимой версии, это обеспечит проверку того, что минимально требуемая версия всегда соответствует вашей текущей версии (т. Е. Пользователь всегда будет вынужден обновиться до последней версии).

1 голос
/ 09 января 2013

Это сработало, сняв отметку Приложение должно проверять наличие обновлений , и приложение начало обновляться без запроса пользователя после двух версий.

Enter image description here

0 голосов
/ 12 июня 2015

Для принудительного обновления на клиентах необходимо установить поле минимальной версии, равное текущей развертываемой версии, это приведет к обновлению без параметра «Пропустить».

...