Сам обновление приложения устанавливают с WIX?

Вы можете использовать якорь ^, чтобы утверждать начало строки, и использовать отрицательный прогноз, чтобы утверждать, что справа не то, что вы хотите сопоставить.

Обратите внимание, что вам нужно экранировать точку, чтобы буквально соответствовать ей, и вы можете опустить последнюю часть (\/.*)?.

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

^(?!Referer:(https?(:\/\/))?(www\.)?test\.com).+$

regex101 demo

О шаблоне

  • ^ Начало строки
  • (?! Отрицательный взгляд чтобы утверждать, что справа не соответствует
    • Referer:(https?(:\/\/))?(www\.)?test\.com Соответствует вашему шаблону
  • ) Закрыть отрицательный прогноз
  • .+ Соответствовать любой символ кроме новой строки 1+ раз
  • $ Утверждать конец строки

21
задан saschabeaumont 28 April 2009 в 23:37
поделиться

3 ответа

Да, ClickThrough - это действительно то, что вы здесь ищете. В нем есть отдельные кусочки, которые работают. Возможно, вы сможете проанализировать код и использовать его самостоятельно без лишних «интеграций UI + сборки». Большинство ошибок находятся на более высоких уровнях. В корневом каталоге обновление RSS и исполняемый загрузчик работают нормально.

11
ответ дан 29 November 2019 в 21:57
поделиться

Какое должно быть "автоматическое" обновление? :-)

Мы используем WiX (2.0) для приложения, которое нужно устанавливать снова и снова. Пока вы выполняете «серьезные обновления» от версии к версии, это прекрасно работает - вы можете удалить старую версию, а затем переустановить новую - здесь нет серьезных проблем.

Ключ в том, чтобы иметь стабильную версию «UpgradeCode» (GUID в вашем WiX), который никогда не меняется - это ключ для вашего приложения - и иметь новый ProductCode для каждого выпуска.

Затем в вашем файле wxs вам понадобятся два бита:

<Upgrade Id='--your-updatecode-GUID-here--'>
    <UpgradeVersion MigrateFeatures='yes' RemoveFeatures='ALL' />
</Upgrade>

<InstallExecuteSequence>
  <RemoveExistingProducts After='InstallInitialize' />
</InstallExecuteSequence>

должен это сделать!

Кроме этого - особо нечего сказать - он просто работает: -)

5
ответ дан 29 November 2019 в 21:57
поделиться

Установщик Windows не предназначен для "самообновления" программного обеспечения. Если вам не нужен MSI или вам действительно нужно, чтобы приложение «извлекало» свои собственные обновления, используйте NSIS или какой-либо другой инструмент и напишите свою собственную процедуру обновления / службу.

Однако, если это происходит установленный на большом количестве рабочих столов в пределах одной организации, тогда лучшим решением будет развертывание MSI через Active Directory. Затем вы можете «выталкивать» обновления с помощью групповой политики. Это будет намного надежнее, чем любое приложение, которое само обновляется.

3
ответ дан 29 November 2019 в 21:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: