diff --git a/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts b/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts index 8fbde82681081085c6352c2fa71119b078650f80..8d208465cbf2a6c5de1ab63c5a28123d9c2073c8 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts @@ -484,7 +484,15 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem { } } if (options.cwd) { - shellLaunchConfig.cwd = options.cwd; + let cwd = options.cwd; + if (!path.isAbsolute(cwd)) { + let workspaceFolder = Task.getWorkspaceFolder(task); + if (workspaceFolder.uri.scheme === 'file') { + cwd = path.join(workspaceFolder.uri.fsPath, cwd); + } + } + // This must be normalized to the OS + shellLaunchConfig.cwd = path.normalize(cwd); } if (options.env) { shellLaunchConfig.env = options.env;