Check online for Updates

From NSIS Wiki
Jump to navigationJump to search
Author: Jan (talk, contrib)


Description

Let the installer check for newer versions. This function downloads an XML file and queries it for the program version. Useful scenarios are using it with RSS feeds or PAD files. Work in progress!

Syntax

${UpdateXml} "[url]" "[path]" $var
 
"[url]"      ; URL to an XML file
"[path]"     ; path to the version resource in your XML file
             ;
             ; Example:
             ; <XML>
             ;     <A>
             ;        <B>information</B>
             ;     </A>
             ; </XML>
             ;
             ; -> use "/XML/A/B" as path
             ;
$var         ; result, in the above example "information"
 
---------------------------------------------------------------
 
${UpdatePad} "[url]" "[local]" $var
 
"[url]"      ; URL to a PAD file
"[local]"    ; version of the local file
$var         ; result, in the above example "information"

Examples

Read version from XML

!include "XML.nsh"
!include "OnlineUpdate.nsh"
  !insertmacro "UpdateXml"
 
Section
${UpdateXml} "http://198.63.208.118/padinfo/padgen.xml" "/XML_DIZ_INFO/Program_Info/Program_Version" $0
MessageBox MB_OK "The latest version of PADGen is $0"
SectionEnd

Read version from PAD file (XML) and download if newer

!include "WordFunc.nsh"
  !insertmacro "VersionCompare"
!include "XML.nsh"
!include "OnlineUpdate.nsh"
  !insertmacro "UpdateXml"
 
!define LocalVersion "1.0"
 
Section
${UpdatePad} "http://198.63.208.118/padinfo/padgen.xml" "${LocalVersion}" $0 ;
StrCmp $0 "" 0 +2
DetailPrint "Update available at $0"
SectionEnd

Download

OnlineUpdate-0.2.zip (1 KB)

Required:
XML plug-in
VersionCompare