From af3374ffe78858cb63761fa40dc26ea2e9e5bd15 Mon Sep 17 00:00:00 2001 From: Nazar Mokrynskyi Date: Sat, 9 Nov 2024 12:02:06 +0200 Subject: [PATCH] Add Microsoft Visual C++ Redistributable installation support --- .github/workflows/release.yml | 9 ++-- res/windows/wix/bundle.wxs | 92 ++++++++++++++++++++++++++++++++ res/windows/wix/icon.png | Bin 0 -> 8132 bytes res/windows/wix/space-acres.wxs | 16 ------ 4 files changed, 98 insertions(+), 19 deletions(-) create mode 100644 res/windows/wix/bundle.wxs create mode 100644 res/windows/wix/icon.png diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 97f145b..f88b448 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -323,6 +323,9 @@ jobs: # & "C:\Program Files (x86)\WiX Toolset v3.11\bin\heat.exe" dir target\wix\gtk4 -gg -sfrag -template:fragment -out target\wix\gtk4.wxs -cg GTK -dr GTK cargo wix --target ${{ matrix.build.target }} --profile production --no-build --nocapture + # Create bundle with Microsoft Visual C++ Redistributable in it + Remove-Item target\wix\space-acres.wixobj -Confirm:$false + cargo wix --profile release --no-build --nocapture --include res\windows\wix\bundle.wxs -C -ext -C WixBalExtension Remove-Item target\wix\gtk4 -Recurse -Confirm:$false -ErrorAction SilentlyContinue if: runner.os == 'Windows' @@ -333,7 +336,7 @@ jobs: dotnet tool install --global AzureSignTool - (Get-ChildItem -Path target\wix -Include space-acres-*.msi -Recurse) | ForEach-Object { + (Get-ChildItem -Path target\wix -Include space-acres-*.exe -Recurse) | ForEach-Object { Write("Signing $($_)"); AzureSignTool sign --azure-key-vault-url "${{ secrets.AZURE_KEY_VAULT_URI }}" --azure-key-vault-client-id "${{ secrets.AZURE_CLIENT_ID }}" --azure-key-vault-client-secret "${{ secrets.AZURE_CLIENT_SECRET }}" --azure-key-vault-tenant-id "${{ secrets.AZURE_TENANT_ID }}" --azure-key-vault-certificate "${{ secrets.AZURE_CERT_NAME }}" --file-digest sha512 --timestamp-rfc3161 http://timestamp.digicert.com -v $($_); @@ -433,7 +436,7 @@ jobs: with: name: installer-${{ matrix.build.suffix }} path: | - target/wix/*.msi + target/wix/*.exe if-no-files-found: error if: runner.os == 'Windows' @@ -442,6 +445,6 @@ jobs: env: GITHUB_TOKEN: ${{ github.token }} with: - asset_paths: '["target/wix/*.msi"]' + asset_paths: '["target/wix/*.exe"]' if: runner.os == 'Windows' && github.event_name == 'push' && github.ref_type == 'tag' diff --git a/res/windows/wix/bundle.wxs b/res/windows/wix/bundle.wxs new file mode 100644 index 0000000..1879155 --- /dev/null +++ b/res/windows/wix/bundle.wxs @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/windows/wix/icon.png b/res/windows/wix/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e067b219c4b25e5ecd19f6a6bfa42f4fcc8fdf2c GIT binary patch literal 8132 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 - -