Я использую AutoUpdater вместе с проектами установщика Visual Studio в программе WPF. При обновлении моего проекта он никогда не обновляется. Это только дает возможность «Восстановить» или «Удалить» мою существующую установку. Это приводит к тому, что программа всегда запрашивает обновления (так как она все еще находится в старой версии 1.0.0.0).
Мой код обновления (MainWindow.xaml.cs):
AutoUpdater.Start(@"\\SERVER\foo\bar\update.xml", new NetworkCredential("user", "pass"));
AutoUpdater.ShowSkipButton = false;
AutoUpdater.Synchronous = true;
AutoUpdater.Mandatory = true;
AutoUpdater.UpdateMode = Mode.Forced;
My update. xml:
<?xml version="1.0" encoding="utf-8" ?>
<item>
<version>1.0.1.2</version>
<url>\\SERVER\foo\bar\setup.msi</url>
<mandatory>true</mandatory>
</item>
Мои настройки проекта развертывания:
DetectNewerInstalledVersion = False
RemovePreviousVersions = True
Version = 1.0.1.2
My AssemblyInfo.cs:
[assembly: AssemblyVersion("1.0.1.2")]
[assembly: AssemblyFileVersion("1.0.1.2")]
Я меняю версию установки (которая генерирует новый ProductCode) для соответствия AssemblyVersion и AssemblyFileVersion. Однако, когда он идет на обновление, он дает возможность только восстановить или удалить текущую установку. Продолжение «Восстановления» на самом деле не приводит к обновлению программы. В следующий раз, когда вы запустите программу, она все еще будет использовать старую версию и снова попросит обновить.
UpgradeCode остается прежним. Установка для параметра DetectNewerInstalledVersion значения true приводит к тому, что Windows выдает ошибку «Более старая версия уже установлена», но я пытаюсь избавить пользователя от необходимости удалять и переустанавливать для каждого обновления.
Что я могу сделать, чтобы исправить эту проблему?