diff --git a/patch.sh b/patch.sh index 12db01c..6778425 100755 --- a/patch.sh +++ b/patch.sh @@ -7,7 +7,7 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; } git add . git reset -q --hard HEAD -if [[ -f "${file}" ]]; then +if [[ -f "${FILE}" ]]; then git apply --reject "${FILE}" fi diff --git a/patches/update-msi.patch b/patches/update-msi.patch index a7e5449..5649255 100644 --- a/patches/update-msi.patch +++ b/patches/update-msi.patch @@ -9,7 +9,7 @@ index 7cd4a84..7cbdf21 100644 + WindowsInstaller, } diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts -index caecd71..eb85ed0 100644 +index caecd71..4c02afa 100644 --- a/src/vs/platform/update/electron-main/updateService.win32.ts +++ b/src/vs/platform/update/electron-main/updateService.win32.ts @@ -41,5 +41,9 @@ function getUpdateType(): UpdateType { @@ -19,7 +19,7 @@ index caecd71..eb85ed0 100644 - : UpdateType.Archive; + if (fs.existsSync(path.join(path.dirname(process.execPath), 'unins000.exe'))) { + _updateType = UpdateType.Setup; -+ } else if (path.basename(path.normalize(path.join(process.execPath, '..', ''))) === 'Program Files') { ++ } else if (path.basename(path.normalize(path.join(process.execPath, '..', '..'))) === 'Program Files') { + _updateType = UpdateType.WindowsInstaller; + } else { + _updateType = UpdateType.Archive; @@ -43,3 +43,22 @@ index caecd71..eb85ed0 100644 + platform += '-user'; + } } +@@ -243,6 +254,14 @@ export class Win32UpdateService extends AbstractUpdateService { + } else { +- spawn(this.availableUpdate.packagePath, ['/silent', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], { +- detached: true, +- stdio: ['ignore', 'ignore', 'ignore'] +- }); ++ const type = getUpdateType(); ++ if (type == UpdateType.WindowsInstaller) { ++ spawn('msiexec.exe', ['/i', this.availableUpdate.packagePath], { ++ detached: true, ++ stdio: ['ignore', 'ignore', 'ignore'] ++ }); ++ } else { ++ spawn(this.availableUpdate.packagePath, ['/silent', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], { ++ detached: true, ++ stdio: ['ignore', 'ignore', 'ignore'] ++ }); ++ } + }