diff --git a/desktop/forge.config.cjs b/desktop/forge.config.cjs --- a/desktop/forge.config.cjs +++ b/desktop/forge.config.cjs @@ -1,6 +1,7 @@ const babel = require('@babel/core'); const { PluginBase } = require('@electron-forge/plugin-base'); const fs = require('fs-extra'); +const { request } = require('gaxios'); const klaw = require('klaw'); const path = require('path'); @@ -183,6 +184,18 @@ '"out/Comm-darwin-x64" and/or "out/Comm-darwin-arm64"\n', ); } + + if (platform === 'win32') { + const file = fs.createWriteStream( + './assets/windows-runtime-installer.exe', + ); + const response = await request({ + url: 'https://aka.ms/windowsappsdk/1.2/1.2.230313.1/windowsappruntimeinstall-x64.exe', + responseType: 'stream', + }); + response.data.pipe(file); + await new Promise(resolve => file.on('finish', resolve)); + } }, }, }; diff --git a/desktop/package.json b/desktop/package.json --- a/desktop/package.json +++ b/desktop/package.json @@ -44,6 +44,7 @@ "flow-typed": "^3.2.1", "lib": "0.0.1", "fs-extra": "^10.1.0", - "klaw": "^4.0.1" + "klaw": "^4.0.1", + "gaxios": "^4.3.2" } } diff --git a/desktop/src/handle-squirrel-event.js b/desktop/src/handle-squirrel-event.js --- a/desktop/src/handle-squirrel-event.js +++ b/desktop/src/handle-squirrel-event.js @@ -1,6 +1,6 @@ // @flow -import { spawn } from 'child_process'; +import { spawn, execSync } from 'child_process'; import { app } from 'electron'; import path from 'path'; @@ -24,6 +24,9 @@ switch (squirrelEvent) { case '--squirrel-install': case '--squirrel-updated': + execSync( + path.resolve(__dirname, '../assets/windows-runtime-installer.exe'), + ); spawnUpdate(['--createShortcut', commExeName]); return true;