Вы можете использовать якорь ^
, чтобы утверждать начало строки, и использовать отрицательный прогноз, чтобы утверждать, что справа не то, что вы хотите сопоставить.
Обратите внимание, что вам нужно экранировать точку, чтобы буквально соответствовать ей, и вы можете опустить последнюю часть (\/.*)?
.
Если вы не используете группы захвата для последующего использования, вы также можете превратить их в группы без захвата (?:)
.
^(?!Referer:(https?(:\/\/))?(www\.)?test\.com).+$
О шаблоне
^
Начало строки (?!
Отрицательный взгляд чтобы утверждать, что справа не соответствует Referer:(https?(:\/\/))?(www\.)?test\.com
Соответствует вашему шаблону )
Закрыть отрицательный прогноз .+
Соответствовать любой символ кроме новой строки 1+ раз $
Утверждать конец строки Да, ClickThrough - это действительно то, что вы здесь ищете. В нем есть отдельные кусочки, которые работают. Возможно, вы сможете проанализировать код и использовать его самостоятельно без лишних «интеграций UI + сборки». Большинство ошибок находятся на более высоких уровнях. В корневом каталоге обновление RSS и исполняемый загрузчик работают нормально.
Какое должно быть "автоматическое" обновление? :-)
Мы используем 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>
должен это сделать!
Кроме этого - особо нечего сказать - он просто работает: -)
Установщик Windows не предназначен для "самообновления" программного обеспечения. Если вам не нужен MSI или вам действительно нужно, чтобы приложение «извлекало» свои собственные обновления, используйте NSIS или какой-либо другой инструмент и напишите свою собственную процедуру обновления / службу.
Однако, если это происходит установленный на большом количестве рабочих столов в пределах одной организации, тогда лучшим решением будет развертывание MSI через Active Directory. Затем вы можете «выталкивать» обновления с помощью групповой политики. Это будет намного надежнее, чем любое приложение, которое само обновляется.