Установить исполняемый файл оболочки при запуске задачи из расширения - PullRequest
0 голосов
/ 08 октября 2019

Я создаю расширение vscode, которое запускает задачу, используя vscode.ShellExecution. Я использую Windows, и задача должна выполняться только на Windows. Я знаю, что команда задачи не будет выполнена, если используемый терминал не "cmd.exe". Так что, если моя оболочка vscode по умолчанию (терминал.integrated.shell.windows), например, bash, задача не будет выполнена. Поэтому я хочу, чтобы моя задача запускалась с использованием "cmd.exe".

Я знаю, как это сделать в файле tasks.json, как показано здесь , поэтому я пытаюсь сделать то же самое из расширения, но оно не работает.

Вот код, который я использую для создания и запуска задачи:

let options = {
  cwd: 'c:/',
  // I tried this
  windows: {
    options: {
      shell: {
        executable: "cmd.exe"
      }
    }
  },
  // and also tried this
  // shell: {
  //   executable: "cmd.exe"
  // }
};

var execution = new vscode.ShellExecution(
  'c:/some_executable.exe', ['arg1'], options);

let buildTask = new vscode.Task(
  { type: 'shell' },
  vscode.TaskScope.Workspace,
  'My Task',
  'MyExtension',
  execution,
  ['$msCompile']);

  vscode.tasks.executeTask(buildTask)

  //...

Однако задача продолжает выполняться в выбранной пользователем оболочке по умолчанию, и единственный способ заставить ее работать - установить terminal.integrated.automationShell.windows внастройки "cmd.exe", которые я не хочу делать.

...