У нас есть развернутое приложение ClickOnce. Мы хотели бы убедиться, что установки обновляют только 1 версию каждый раз. (Другие передовые решения также приветствуются).
Скажем, например, у пользователя установлена версия 1.16, в то же время было выпущено 2 новых выпуска, поэтому версия на сервере теперь 1.18. Мы хотели бы убедиться, что при следующем обновлении приложения оно сначала обновится с 1.16 до 1.17. Затем при следующем обновлении обновляется с 1.17 до 1.18 и т.д. Т.е. он не обновляется напрямую с 1.16 до 1.18.
Почему, спросите вы. Ну, это связано с тем, что наше приложение имеет локальную (SQL EXPRESS) базу данных. У нас есть собственный класс обновления, который вызывается при запуске приложения. Он определяет, произошло ли обновление CO, и если да, то обновляет локальную базу данных любыми изменениями схемы, которые могли быть сделаны. т.е. обновление CO сначала доставляет файлы, необходимые для выполнения изменений схемы, а затем пользовательский класс обновления выполняет фактическую модификацию базы данных. Это проблема при переходе более чем на 1 версию, поскольку в этом примере сценарий изменения базы данных с версии 16 на версию 17 никогда не будет применен.
Наш первый подход заключался в гирляндной цепочке папок обновления CO. То есть обновления v.16 с 1.17, обновления 1.17 с 1.18, но это похоже не решает проблему.
Любые идеи?