mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-05-25 23:39:58 +02:00
QElectroTech.wxs — add ProductCode="$(var.ProductCode)" to <Package>
+ AllowSameVersionUpgrades="yes" to <MajorUpgrade> windows-msi.yml — in the ‘Extract version’ step, calculate a unique GUID based on the commit’s SHA, then pass -d ‘ProductCode=$productGuid’ to the WIX build This ensures that each build will have a different ProductCode → MajorUpgrade will always be triggered
This commit is contained in:
13
.github/workflows/windows-msi.yml
vendored
13
.github/workflows/windows-msi.yml
vendored
@@ -75,10 +75,20 @@ jobs:
|
|||||||
$count = git rev-list HEAD --count 2>$null
|
$count = git rev-list HEAD --count 2>$null
|
||||||
$rev = [int]$count + 473
|
$rev = [int]$count + 473
|
||||||
$verDisplay = "${ver}-r${rev}-${sha}_x86_64-win64"
|
$verDisplay = "${ver}-r${rev}-${sha}_x86_64-win64"
|
||||||
|
# Generate a unique ProductCode GUID from the commit SHA
|
||||||
|
# This ensures MajorUpgrade always triggers, even for same-version builds
|
||||||
|
$fullSha = git rev-parse HEAD 2>$null
|
||||||
|
if (-not $fullSha) { $fullSha = [System.Guid]::NewGuid().ToString() }
|
||||||
|
$bytes = [System.Text.Encoding]::UTF8.GetBytes($fullSha)
|
||||||
|
$md5 = [System.Security.Cryptography.MD5]::Create().ComputeHash($bytes)
|
||||||
|
$productGuid = [System.Guid]::new($md5[0..15]).ToString().ToUpper()
|
||||||
|
|
||||||
echo "VERSION_MSI=$verMsi" >> $env:GITHUB_OUTPUT
|
echo "VERSION_MSI=$verMsi" >> $env:GITHUB_OUTPUT
|
||||||
echo "VERSION_DISPLAY=$verDisplay" >> $env:GITHUB_OUTPUT
|
echo "VERSION_DISPLAY=$verDisplay" >> $env:GITHUB_OUTPUT
|
||||||
|
echo "PRODUCT_GUID=$productGuid" >> $env:GITHUB_OUTPUT
|
||||||
Write-Host "Version MSI : $verMsi"
|
Write-Host "Version MSI : $verMsi"
|
||||||
Write-Host "Version display : $verDisplay"
|
Write-Host "Version display : $verDisplay"
|
||||||
|
Write-Host "Product GUID : $productGuid"
|
||||||
|
|
||||||
# ----------------------------------------------------------------
|
# ----------------------------------------------------------------
|
||||||
# 4. Install WiX v7, accept EULA and install WixUI extension
|
# 4. Install WiX v7, accept EULA and install WixUI extension
|
||||||
@@ -202,10 +212,13 @@ jobs:
|
|||||||
Write-Host " LicenseRtf : $licRtf"
|
Write-Host " LicenseRtf : $licRtf"
|
||||||
Write-Host " Output : dist\$outputName"
|
Write-Host " Output : dist\$outputName"
|
||||||
|
|
||||||
|
$productGuid = "${{ steps.version.outputs.PRODUCT_GUID }}"
|
||||||
|
|
||||||
wix build $wxs `
|
wix build $wxs `
|
||||||
-arch x64 `
|
-arch x64 `
|
||||||
-d "Version=$version" `
|
-d "Version=$version" `
|
||||||
-d "ProductVersion=$verDisplay" `
|
-d "ProductVersion=$verDisplay" `
|
||||||
|
-d "ProductCode=$productGuid" `
|
||||||
-d "FilesDir=$filesDir" `
|
-d "FilesDir=$filesDir" `
|
||||||
-d "LicenseRtf=$licRtf" `
|
-d "LicenseRtf=$licRtf" `
|
||||||
-ext WixToolset.UI.wixext `
|
-ext WixToolset.UI.wixext `
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
Name="QElectroTech"
|
Name="QElectroTech"
|
||||||
Manufacturer="QElectroTech Team"
|
Manufacturer="QElectroTech Team"
|
||||||
Version="$(var.Version)"
|
Version="$(var.Version)"
|
||||||
|
ProductCode="$(var.ProductCode)"
|
||||||
UpgradeCode="A1B2C3D4-E5F6-7890-ABCD-EF1234567890"
|
UpgradeCode="A1B2C3D4-E5F6-7890-ABCD-EF1234567890"
|
||||||
Language="1033"
|
Language="1033"
|
||||||
Codepage="1252"
|
Codepage="1252"
|
||||||
|
|||||||
Reference in New Issue
Block a user