|
@@ -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']
|
|
|
++ });
|
|
|
++ }
|
|
|
+ }
|