Приложение ClickOnce пропускает запрос на обновление (или сбой запуска, если выбран параметр пропустить)

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

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

другой вариант-не выполнить запуск, если нажать skip (это тоже отлично работает).

Мне нужно как-то остановить их от запуска старой версии приложение.

5 ответов


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

http://www.sayedhashimi.com/CategoryView категории,с помощью ClickOnce.аспн

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

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

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

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

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

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

3) последнее, что нужно отметить, это то, что если приложение установленное приложение (и вы не установили Атрибут MinimumRequiredVersion) ClickOnce предложит пользователю Диалоговое окно "обновление доступно", только если пользователь запускает приложение от Ярлык меню "Пуск". То есть, если приложение установленным приложение и пользователь запускает приложения с URL-адреса, с помощью ClickOnce заставляет обновление.


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

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


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

<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>

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

Enter image description here


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


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