Как предполагает Марк Кин, .distinctUntilChanged
добивается цели.
Таким образом, следующий код будет выдвигать список событий, если после буферизации есть 1+ элементов:
NSIS может сделать это.
Часть нашей среды сборки является сценарием что выходная информация о версии в файл "заголовка" что наши источники сценария NSIS. Необходимо смочь использовать что-то подобное для встраивания информации о версии, и можно, конечно, заставить NSIS петлять после извлечения.
На самом деле, поскольку NSIS создает пакет установщика..., Вы можете упрощать свой подход много.
Немного удивленный, что это еще не перечислено здесь: IExpress является простым инструментом, идущим с Windows, и может использоваться для создания самораспаковывающихся установщиков.
При загрузке Windows SDK существует MSIStuff.exe и Setup.exe, для которого MS обеспечивает исходный код для компиляции. MSIStuff "наполнит" MSI, который Вы даете ему в Setup.exe. Setup.exe может затем быть распределен.
Больше информации по http://support.microsoft.com/kb/888473
Недостатки:
Я на самом деле закончил тем, что использовал NSIS для этого конкретного выпуска, так как я должен был связать некоторые другие установщики также.
Для ссылки вот сценарий, который я использовал:
VIProductVersion "1.0.0.0" ; set version here
VIAddVersionKey "FileVersion" "1.0.0.0" ; and here!
VIAddVersionKey "CompanyName" "MyCompany"
VIAddVersionKey "LegalCopyright" "© MyCompany"
VIAddVersionKey "FileDescription" "Installer for MyProgram"
OutFile MyProgram-Setup.exe
SilentInstall silent
Section Main
SetOutPath $TEMP
SetOverwrite on
File SharedManagementObjects.msi
File SQLSysClrTypes.msi
File Release\Setup.exe
File Release\Setup.msi
ExecWait 'msiexec /passive /i "$OUTDIR\SharedManagementObjects.msi"'
ExecWait 'msiexec /passive /i "$OUTDIR\SQLSysClrTypes.msi"'
Exec '"$OUTDIR\Setup.exe"'
SectionEnd
попробуйте inno-установку
установите директиву VersionInfoVersion на свое число версии двоичных файлов, например.
VersionInfoVersion = 1.1.0.0
это появится в тексте наведения мыши и свойствах
Происходящий эксперимент здесь:
Раскрывающаяся Информация о версии: http://screencast.com/t/LVqvLfxCj3g
От информации о блоке Visual Studio: http://screencast.com/t/fqunlMNh13
Установленный с простым файлом MSI.
Путем добавления "Версии: 1.5.0" текстов в свойство Description Проекта Установки, номер версии также показывает на файле MSI как так: http://screencast.com/t/A499i6jS
Я обычно просто переименовываю файл MSI, как DataMonkey_1_5_0.msi в моих собственных целях.
DotNetZip может создавать самораспаковывающийся архив, который включает номер версии, отображаемый при наведении указателя мыши на проводник Windows. SFX также включает название продукта, описание, версию продукта и информацию об авторских правах, которые отображаются в окне «Свойства / подробности» в проводнике Windows.
SFX может запускать команду, указанную вами после извлечения.
Создание SFX может быть выполнено из сценария Powershell, или вы можете написать программу для этого, используя VB.NET, C #, VBScript или JavaScript, и т. Д.
Чтобы получить информацию о номере версии, вам нужно как минимум DotNetZip v1.9.0.26.
Если вы правильно строим хэш, УРЛ щелчок придется поступить от IP-адреса, который запросил сброс. Это потребует MITM для подъема IP и / или фальсифицированных заголовков. Хотя это возможно, тем более уникальнее вы можете идентифицировать ташу рассматриваемой системы, тем сложнее он становится «окончить» хеш.
Также рекомендуется, чтобы GUID быть односторонним хэшем определенных критериев. Также возможно зашифровать системные данные в запросе с использованием открытого ключа, который разблокирует закрытый ключ, чтобы при нажатии URL-адреса эти же публичные зашифрованные системы системы должны сопровождать хеш, а также единственной системой, которая может быть связана с этими ценностями, Частный ключ проводится на сервере. В основном прессование PSuedo-PKi к хэш.
-121--3594976-FYI Использование самоустрахов DotNetzip не имеет смысла, если вы используете SetStupper Setup.exe для проверки .NET .NET (Self-Extractor Dotnetzip требует .NET 2.0).