diff --git a/Installer/build-installer.bat b/Installer/build-installer.bat index 48962cce..5e25b0fc 100644 --- a/Installer/build-installer.bat +++ b/Installer/build-installer.bat @@ -1,2 +1,16 @@ +setlocal + +:: Retrieve the version string from the 'Version' file located in the parent directory. +:: Load version from file into environment variable +for /f "usebackq delims=" %%v in ("..\Version") do set "VERSION=%%v" +set "VERSION=%VERSION%.0" + +:: Append ".0" to the version. This converts 'X.X.X' to 'X.X.X.0', +:: satisfying NSIS's strict four-part version format (e.g., for VIProductVersion). +:: Winget will treat 'X.X.X.0' as equal to 'X.X.X', so it won't trigger an unnecessary update. +echo !define PRODUCT_VERSION_FROM_FILE "%VERSION%" > version_define.nsh + +:: Compile the NSIS installer. "C:\Program Files (x86)\NSIS\makensis.exe" installer.nsi + pause \ No newline at end of file diff --git a/Installer/installer.nsi b/Installer/installer.nsi index 7217c17b..daef1c47 100644 --- a/Installer/installer.nsi +++ b/Installer/installer.nsi @@ -5,11 +5,15 @@ ;https://nsis.sourceforge.io/NsProcess_plugin ;https://nsis.sourceforge.io/Inetc_plug-in +!addplugindir "Plugins\x86-unicode" + ;-------------------------------- ;Version + !include "version_define.nsh" + + !define PRODUCT_VERSION ${PRODUCT_VERSION_FROM_FILE} + !define VERSION ${PRODUCT_VERSION_FROM_FILE} - !define PRODUCT_VERSION "1.0.0.0" - !define VERSION "1.0.0.0" VIProductVersion "${PRODUCT_VERSION}" VIFileVersion "${VERSION}" VIAddVersionKey "FileVersion" "${VERSION}" @@ -166,6 +170,10 @@ Section "Install" SecInstall WriteRegStr HKLM "Software\VRCX" "InstallDir" $INSTDIR WriteUninstaller "$INSTDIR\Uninstall.exe" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCX" "DisplayName" "VRCX" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCX" "Publisher" "vrcx-team" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCX" "DisplayVersion" "${VERSION}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCX" "DisplayArch" "x64" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCX" "InstallLocation" "$INSTDIR" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCX" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\"" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCX" "DisplayIcon" "$\"$INSTDIR\VRCX.ico$\"" @@ -212,4 +220,4 @@ Section "Uninstall" Delete "$SMPROGRAMS\VRCX.lnk" Delete "$DESKTOP\VRCX.lnk" ${EndIf} -SectionEnd +SectionEnd \ No newline at end of file diff --git a/Installer/version_define.nsh b/Installer/version_define.nsh new file mode 100644 index 00000000..cc0af198 --- /dev/null +++ b/Installer/version_define.nsh @@ -0,0 +1 @@ +!define PRODUCT_VERSION_FROM_FILE "2025.05.09.0"