Я создаю расширение 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", которые я не хочу делать.