Xác định nhiều tác vụ trong VSCode


82

Tôi đã thấy rằng có thể xác định một nhiệm vụ trong VSCode. Nhưng tôi không chắc chắn về cách xác định nhiều tác vụ trong tasks.jsontệp.


13
Thật đáng ngạc nhiên khi trang web VS Code giải thích điều này một cách kém cỏi như thế nào! Người ta phải lùng sục khắp các góc tối của internet để tìm ra cách hoạt động của công cụ mới này.
Kokodoko

Hỗ trợ hạng nhất đã được thêm vào VS Code 1.9 (tháng 1 năm 2017) loại bỏ nhu cầu về các giải pháp thay thế được thấy trong các câu trả lời hàng đầu tại đây. Xem câu trả lời này (của tôi) .
vossad01

Câu trả lời có thể được tìm thấy ở đây: stackoverflow.com/questions/43657839/…
pasx

Câu trả lời:


36

Chỉ trong trường hợp nó giúp ai đó .... Nếu bạn không có / muốn gulp / grunt / etc ... hoặc một tập lệnh shell bổ sung để ủy quyền các lệnh tác vụ của mình, thì "npm run" đã có sẵn.

cái này dành cho webpack và mocha như trong "Build and Test", Shift+ Ctrl+ B, Shift+ Ctrl+T

.vscode / task.json:

{
  "name": "npmTask",
  //...
  "suppressTaskName": true,
  "command": "npm",
  "isShellCommand": true,
  "args": [
    "run"
  ],
  "tasks": [
    {
      //Build Task
      "taskName": "webpack",
      //Run On Shift+Ctrl+B
      "isBuildCommand": true,
      //Don't run when Shift+Ctrl+T
      "isTestCommand": false,
      // Show the output window if error any
      "showOutput": "silent",
      //Npm Task Name
      "args": [
        "webpack"
      ],
      // use 2 regex:
      // 1st the file, then the problem       
      "problemMatcher": {
        "owner": "webpack",
        "severity": "error",
        "fileLocation": "relative",
        "pattern": [
          {
            "regexp": "ERROR in (.*)",
            "file": 1
          },
          {
            "regexp": "\\((\\d+),(\\d+)\\):(.*)",
            "line": 1,
            "column": 2,
            "message": 3
          }
        ]
      }
    },
    {
      //Test Task   
      "taskName": "mocha",
      // Don't run on Shift+Ctrl+B
      "isBuildCommand": false,
      // Run on Shift+Ctrl+T
      "isTestCommand": true,
      "showOutput": "always",
      "args": [
        "mocha"
      ]
    }
  ]
}

package.json:

{
  ...
  "scripts": {
    "webpack": "webpack",
    "mocha": "/usr/bin/mocha"
  },
  ...
}

Giải pháp tốt! Vì vậy, bạn xác định các lệnh thực tế của mình trong thẻ npm scripts, sau đó bạn gọi tập lệnh npm từ task.json. Tôi thực sự muốn xác định các nhiệm vụ ngay bên trong task.json. Điều này có vẻ hơi thừa?
Kokodoko

13

Điều đã giúp tôi hiểu điều này tốt hơn là chuỗi các đối số được truyền cho lệnh. Nó có thể rõ ràng đối với một số người nhưng nó không rõ ràng trong tài liệu.

Bỏ qua một số trường để chỉ tập trung vào lệnh được gửi:

{ "command": "myCommand"
  "args": ["myCommandArguments"],
  "tasks" : [ 
    { "taskName": "myTask",
      "args": ["myTaskArguments"],
      "suppressTaskName": false,
    }
  ]
}

Định nghĩa trên sẽ dẫn đến lệnh sau:

myCommand myCommandArguments myTaskArguments myTask

Tên nhiệm vụ myTaskluôn ở cuối cùng. Kể từ phiên bản 0.4, nó có thể được bỏ qua với "suppressTaskName": true.


Wow, tôi không thể tin được câu trả lời này nhưng đã thử nó và nó là sự thật và hiệu quả. Tôi muốn một nhiệm vụ trong VSCode cho "gulp --no-color vet --verbose" nhưng để làm cho nó hoạt động, tôi đã sử dụng đối số làm tác vụ và tác vụ làm đối số như "gulp --no-color --verbose vet "trong task.json trong đó bác sĩ thú y là nhiệm vụ của tôi và --verbose là một đối số. Tất nhiên điều này gây ra vấn đề với các tác vụ có các vòng giống nhau vì vậy nhiệm vụ được đặt tên theo các vòng của nó và được liệt kê như vậy trong các tùy chọn chạy tác vụ VSCode.
GJSmith3rd

Nhưng nếu tôi muốn các tác vụ khác nhau với các lệnh khác nhau thì sao? Ví dụ: một tác vụ nên chạy node-sass và tác vụ kia nên chạy tsc?
Kokodoko

Bạn đã giúp tôi thoát khỏi việc nhảy ra khỏi cửa sổ với đối số suppTaskName.
Machinegon

12

Thử đi

{
    "version": "0.1.0",
    "command": "cmd",
    "isShellCommand": true,
    "args": ["/C"],
    "tasks": [
        {
            "taskName": "install",
            "args": ["npm install"]
        },
        {
            "taskName": "build",
            "args": ["gulp build"],
            "isBuildCommand": true,
            "problemMatcher": "$gulp-tsc"
        }
    ]
}

xin vui lòng thêm thông tin? Lỗi gì vậy? Tôi đang sử dụng cái này kể từ VS Code 0.8.0 và nó hoạt động tốt.
AlexStack

trên đầu ra toogle, tôi đã thấy đầu ra onrun cmd.exe standart. Như thế này: Microsoft Windows [Phiên bản 10.0.10240] (c) Корпорация Майкрософт (Tập đoàn Microsoft), 2015 г. Все права защищены. // Bản quyền MS trên tiếng Nga C: \ Users \ roman>
neftedollar.

@neftedollar Tính năng này chỉ hoạt động trên Windows. Nếu bạn đang tìm kiếm thứ gì đó sẽ hoạt động trên Mac, hãy thay đổi "command": "cmd" thành "command": "sh" và thay đổi "args": ["/ c"] thành "args": ["- c "].
ra9r

@raiglstorfer cảm ơn, nó không hoạt động trên máy tính chạy windows của tôi.
neftollar

10

Tôi sử dụng tệp task.json sau để chạy nhiều kịch bản xây dựng TypeScript. Tôi đặt một tệp tsconfig.json trong mỗi thư mục, để cho phép tôi điều chỉnh đầu ra của từng thư mục riêng lẻ. Chỉ cần đảm bảo rằng bạn loại bỏ tên tác vụ, vì nó cố gắng đặt nó trong chuỗi lệnh.

{
    "version": "0.1.0",
    "command": "tsc",
    "showOutput": "always",
    "isShellCommand": true,
    "args": [],
    "windows": {
        "command": "tsc",
        "showOutput": "always",
        "isShellCommand": true
    },
    "tasks": [
        {
            "taskName": "Build the examples",
            "suppressTaskName": true,
            "isBuildCommand": false,            
            "args": ["-p", "./source/examples", "--outDir", "./script/examples"],
            "problemMatcher": "$tsc"
        },
        {
            "taskName": "Build the solution",            
            "suppressTaskName": true,
            "isBuildCommand": false,        
            "args": ["-p", "./source/solution", "--outDir", "./script/solution"],
            "problemMatcher": "$tsc"
        }   
    ]
}

Đây là cấu trúc thư mục trông như thế nào, trong đó / script là gốc đầu ra và / source là gốc đầu vào. Cả hai thư mục tham chiếu kiểu khai báo trong thư mục / gõd và thư mục / typings. TypeScript hơi hạn chế trong việc sử dụng các đường dẫn tương đối trong các tham chiếu bên ngoài, vì vậy nó giúp đơn giản hóa mọi thứ nếu các cấu trúc thư mục này tương tự nhau.

Cấu trúc thư mục nhiều bản dựng của TypeScript

Ồ vâng, việc khởi chạy chúng một cách có chọn lọc sẽ dễ dàng hơn nếu bạn đánh dấu chúng là không phải bản dựng và ghi đè khoá xây dựng để chọn một tác vụ cụ thể từ danh sách, như vậy ..

// Place your key bindings in this file to overwrite the defaults
[
    { "key": "ctrl+shift+b", "command": "workbench.action.tasks.runTask" }
]

Cập nhật : Bạn luôn có thể hoàn toàn lừa đảo, nếu bạn muốn. Có thể có nhiều cách tốt hơn để xử lý các vấn đề, nhưng cách này phù hợp với tôi trên OSX vào lúc này.

{
  "version": "0.1.0",
  "isShellCommand": true,
  "linux": { "command": "sh", "args": ["-c"] },
  "osx": { "command": "sh", "args": ["-c"] },
  "windows": { "command": "powershell", "args": ["-Command"] },
  "tasks": [
    {
      "taskName": "build-models",
      "args": ["gulp build-models"],
      "suppressTaskName": true,
      "isBuildCommand": false,
      "isTestCommand": false
    },
    {
      "taskName": "run tests",
      "args": ["mocha ${workspaceRoot}/test"],
      "suppressTaskName": true,
      "isBuildCommand": false,
      "isTestCommand": false
    }
  ]
}

2
Đây là một ví dụ rất rõ ràng! Đây có lẽ là cách MS dự định sử dụng các task.json (thật tiếc là họ không tự giải thích điều này). Vấn đề duy nhất là: nếu tôi có các tác vụ dòng lệnh KHÁC NHAU thì sao? (Tôi cần một công việc tsc và một nhiệm vụ nút-sass)
Kokodoko

3
Xem Cập nhật, để biết phương tiện chạy nhiều lệnh độc lập.
djabraham

Tôi đồng ý rằng một "lệnh xây dựng" duy nhất là rắc rối khi bạn muốn sử dụng tsc và node-sass. Phải cài đặt và tìm hiểu một công cụ xây dựng của bên thứ ba (như gulp) là một yếu tố khó khăn. Việc phải liệt kê các bộ xử lý lệnh khác nhau cho các hệ điều hành khác nhau là một điều tối kỵ.
Jon Watte

7

Tôi không biết câu trả lời thích hợp cho điều này (và cũng muốn biết), nhưng cách giải quyết xấu xí của tôi trong trường hợp nó có ích cho bất kỳ ai. Tôi đang sử dụng Windows, tôi đã kết thúc việc tạo cho mình một tập lệnh lô đơn giản có thể chứa

"%1" "%2"

Sau đó, nhiệm vụ của tôi. Json trông giống như

{
    "version": "0.1.0",
    "command": "c:\\...\\mytasks.bat"
    "tasks" : [
        {
            "taskName": "myFirstTask",
            "args": "c:\\...\\task1.exe", "${file}"],
        },
        {
            "taskName": "mySecondTask",
            "args": "c:\\...\\task2.exe", "${file}"],
        },
    ]
}

Cuối cùng tôi đã làm việc này. Ở đâu đó trong khoảng 9 tháng qua VS Code bắt đầu thêm taskName để tranh luận 1 về nhiệm vụ. Vì vậy, tệp hàng loạt của tôi trở thành: "% 2" "% 3" thay vì những gì bạn có. Nếu điều này vẫn nhất quán, tôi có thể quay lại để chỉnh sửa giải pháp này.
phil

6

Bạn có thể liệt kê nhiều hơn một nhiệm vụ trong thuộc tính nhiệm vụ. Cái gì đó như:

"tasks": [
    {
        "taskName": "build",
        ...
    },
    {
         "taskName": "package",
         ...
    }
]

7
Tuy nhiên, họ phải sử dụng cùng một lệnh. Bạn chỉ có thể thay đổi các đối số.
Edward B.

Có Edward B. Vì lý do nào đó, mọi bài đăng trên blog hiện tại đều giả định rằng bạn mới bắt đầu với VS Code và chưa có nhiệm vụ nào: S. Tuy nhiên, bạn phải đặt "Tên miền": true, trên nút gốc và sau đó có thể đặt "Tên tác vụ" trong các nhiệm vụ con để sử dụng các lệnh khác nhau. Xem ví dụ về @Dan với tscmochanhiệm vụ.
Bart

4

Chức năng này đã được thêm vào Visual Studio Code v1.9 (tháng 1 năm 2017) . Ví dụ và văn bản đến từ các ghi chú phát hành :

{
  "version": "0.1.0",
  "tasks": [
    {
      "taskName": "tsc",
      "command": "tsc",
      "args": ["-w"],
      "isShellCommand": true,
      "isBackground": true,
      "problemMatcher": "$tsc-watch"
    },
    {
      "taskName": "build",
      "command": "gulp",
      "args": ["build"],
      "isShellCommand": true
    }
  ]
}

Lệnh cho mỗi tác vụ

Bây giờ bạn có thể xác định các lệnh khác nhau cho mỗi tác vụ ( # 981 ). Điều này cho phép chạy các lệnh khác nhau cho các tác vụ khác nhau mà không cần viết tập lệnh shell của riêng bạn. Một tasks.jsontập tin sử dụng lệnh mỗi vẻ nhiệm vụ như [ở trên.]


3

Đây có vẻ là một lỗi VSCode kể từ v0.5.0

vì vậy, tôi đã thêm câu trả lời này để hiển thị một ví dụ hoạt động về những gì đã được @hurelu giải thích trước đó. Nhiệm vụ của tôi.json:

{
    "version": "0.1.0",
    "command": "gulp",
    "isShellCommand": true,
    "args": [
        "--no-color"
    ],
    "tasks": [
        {
            "taskName": "--verbose",
            "isBuildCommand": true,
            "showOutput": "always",
            "args": [
                "vet"
            ],
            "problemMatcher": [
                "$jshint",
                "$jshint-stylish"
            ]
        },
        {
            "taskName": "vet",
            "isTestCommand": true,
            "showOutput": "always",
            "args": [],
            "problemMatcher": [
                "$jshint",
                "$jshint-stylish"
            ]
        }
    ]
}

Gulp.js của tôi:

/// <reference path="typings/tsd.d.ts" />

var gulp = require('gulp');
var jshint = require('gulp-jshint');
var jscs = require('gulp-jscs');
var util = require('gulp-util');
var gulpprint = require('gulp-print');
var gulpif = require('gulp-if');
var args = require('yargs').argv;

gulp.task('vet', function () {
    log('Analyzing source with JSHint and JSCS');

    return gulp
        .src
        ([
            './src/**/*.js',
            './*.js'
        ])
        .pipe(gulpif(args.verbose, gulpprint()))
        .pipe(jscs())
        .pipe(jshint())
        .pipe(jshint.reporter('jshint-stylish', { verbose: true }))
        .pipe(jshint.reporter('fail'));
});

gulp.task('hello-world', function () {
    console.log('This is our first Gulp task!');
});

////////////
function log(msg) {
    if (typeof (msg) === 'object') {
        for (var item in msg) {
            if (msg.hasOwnProperty(item)) {
                util.log(util.colors.blue(msg[item]));
            }
        }
    } else {
        util.log(util.colors.blue(msg));
    }

}

Lưu ý rằng tác vụ đầu tiên sử dụng isBuildCommand để CTRL + SHFT + B khởi chạy và tác vụ tiếp theo là isTestCommand để CTRL + SHFT + T khởi chạy. Tuy nhiên, để có được nhiệm vụ đầu tiên chấp nhận args, tên nhiệm vụ và args phải được đảo ngược.

Đối với VSCode 0.5.0 ở trên hoạt động nhưng những điều sau không hoạt động:

{
    "version": "0.1.0",
    "command": "gulp",
    "isShellCommand": true,
    "args": [
        "--no-color"
    ],
    "tasks": [
        {
            "taskName": "vet",
            "isBuildCommand": true,
            "showOutput": "always",
            "args": [
                "--verbose"
            ],
            "problemMatcher": [
                "$jshint",
                "$jshint-stylish"
            ]
        },
        {
            "taskName": "vet",
            "isTestCommand": true,
            "showOutput": "always",
            "args": [],
            "problemMatcher": [
                "$jshint",
                "$jshint-stylish"
            ]
        }
    ]
}

Đây là đầu ra từ task.json với nhiệm vụ chính xác và thứ tự args:

[10:59:29] Using gulpfile ~/Workspaces/Examples/Gulp/pluralsight-gulp/gulpfile.js
[10:59:29] Task 'default' is not in your gulpfile
[10:59:29] Please check the documentation for proper gulpfile formatting

Đây là kết quả chính xác từ các task.json với tên tác vụ và đối số bị đảo ngược khi sử dụng args:

[11:02:44] Using gulpfile ~/Workspaces/Examples/Gulp/pluralsight-gulp/gulpfile.js
[11:02:44] Starting 'vet'...
[11:02:44] Analyzing source with JSHint and JSCS
[gulp] src/server/app.js
[gulp] src/client/app/app.module.js
[gulp] src/client/test-helpers/bind-polyfill.js
[gulp] src/client/test-helpers/mock-data.js
[gulp] src/server/routes/index.js
[gulp] src/client/app/core/config.js
[gulp] src/client/app/core/constants.js
[gulp] src/client/app/core/core.module.js
[gulp] src/client/app/core/dataservice.js
[gulp] src/client/app/core/dataservice.spec.js
[gulp] src/client/app/customers/customer-detail.controller.js
[gulp] src/client/app/customers/customer-detail.controller.spec.js
[gulp] src/client/app/customers/customers.controller.js
[gulp] src/client/app/customers/customers.controller.spec.js
[gulp] src/client/app/customers/customers.module.js
[gulp] src/client/app/customers/customers.route.js
[gulp] src/client/app/customers/customers.route.spec.js
[gulp] src/client/app/dashboard/dashboard.controller.js
[gulp] src/client/app/dashboard/dashboard.controller.spec.js
[gulp] src/client/app/dashboard/dashboard.module.js
[gulp] src/client/app/dashboard/dashboard.route.js
[gulp] src/client/app/dashboard/dashboard.route.spec.js
[gulp] src/client/app/layout/ht-sidebar.directive.js
[gulp] src/client/app/layout/ht-sidebar.directive.spec.js
[gulp] src/client/app/layout/ht-top-nav.directive.js
[gulp] src/client/app/layout/layout.module.js
[gulp] src/client/app/layout/shell.controller.js
[gulp] src/client/app/layout/shell.controller.spec.js
[gulp] src/client/app/layout/sidebar.controller.js
[gulp] src/client/app/layout/sidebar.controller.spec.js
[gulp] src/client/app/widgets/ht-img-person.directive.js
[gulp] src/client/app/widgets/ht-widget-header.directive.js
[gulp] src/client/app/widgets/widgets.module.js
[gulp] src/client/tests/server-integration/dataservice.spec.js
[gulp] src/server/routes/utils/errorHandler.js
[gulp] src/server/routes/utils/jsonfileservice.js
[gulp] src/client/app/blocks/exception/exception-handler.provider.js
[gulp] src/client/app/blocks/exception/exception-handler.provider.spec.js
[gulp] src/client/app/blocks/exception/exception.js
[gulp] src/client/app/blocks/exception/exception.module.js
[gulp] src/client/app/blocks/logger/logger.js
[gulp] src/client/app/blocks/logger/logger.module.js
[gulp] src/client/app/blocks/router/router-helper.provider.js
[gulp] src/client/app/blocks/router/router.module.js
[gulp] gulpfile.js
[gulp] karma.conf.js
[11:02:48] Finished 'vet' after 4.37 s

2

Kể từ bản phát hành tháng 2 năm 2017 , bạn có thể sử dụng Terminal Runner và soạn nhiều tác vụ bằng cách thiết lập các tác vụ phụ thuộc. Nó hơi thú vị ở chỗ nó sẽ mở ra một thiết bị đầu cuối tích hợp riêng cho từng tác vụ, bạn phải theo dõi để xem mọi thứ có hoạt động hay không và nhớ đóng (chúng "xếp chồng") và bạn không nhận được thông báo "hoàn thành" , nhưng nó hoàn thành công việc. Chức năng là sơ bộ nhưng nó đầy hứa hẹn. Đây là một ví dụ để chạy tsc và jspm cho một ứng dụng Cordova.

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [{
        "taskName": "tsc",
        "command": "tsc",
        "isShellCommand": true,
        "args": ["-p", "."],
        "showOutput": "always",
        "problemMatcher": "$tsc"
    }, {
        "taskName": "jspm",
        "command": "jspm",
        "isShellCommand": true,
        "args": ["bundle-sfx", "www/app/main.js", "www/dist/bundle.js", "--inline-source-maps", "--source-map-contents"],
        "showOutput": "always"
    },
    {
        "taskName": "build",
        "isBuildCommand": true,
        "dependsOn": ["tsc", "jspm"]
    }]
}

Điểm cao nhất để sử dụng phiên bản nhiệm vụ mới hơn. Làm cho mọi thứ dễ dàng hơn rất nhiều!
wonea

1

Những điều sau đây đã làm việc cho tôi:

task.json:

{
    "version": "0.1.0",
    "command": "cmd",
    "isShellCommand": true,
    "args": [
        "/c"
    ],
    "tasks": [
        {
            "taskName": "bower",
            "args" : ["gulp bower"],
            "isBuildCommand": true,
            "showOutput": "always"
        },
        {
            "taskName": "unittest",
            "suppressTaskName": true,
            "args" : ["dnx -p ${cwd}\\test\\MyProject.UnitTests test"],
            "isTestCommand": true,
            "showOutput": "always"
        }
    ]
}

MyProject.UnitTests \ project.json :

 "commands": {
    "test": "xunit.runner.dnx"
  }

Chạy bower: Ctrl + Shift + B từ vscode Chạy kiểm tra: Ctrl + Shift + T từ vscode


1

Điều này làm việc cho tôi ...

Tôi biết có rất nhiều câu trả lời khác nhau ở đây nhưng cách tiếp cận của tôi lại hơi khác một chút vì vậy tôi nghĩ mình sẽ thêm giá trị 2 xu của mình.

Tôi đang sử dụng windows và sử dụng một tệp hàng loạt bên ngoài để chạy các lệnh của mình. Nó tương tự như câu trả lời của Jonathan ở trên nhưng tôi không đặt bất kỳ lệnh nào cho nó, điều đó có nghĩa là tệp “task.json” của tôi khác.

Tôi có thể thay đổi cách tiếp cận này theo thời gian (ví dụ: tôi chưa bắt đầu chơi với gulp) nhưng phương pháp này đang hoạt động hoàn toàn tốt đối với tôi vào lúc này.

Tôi đang sử dụng thanh điều khiển để tạo khuôn mẫu html, babel, vì vậy tôi có thể sử dụng mã ES6 và một trình ghép mã để sửa lỗi. Cuối cùng, tệp loạt khởi chạy trình duyệt với trang bắt đầu của tôi (index.html)

Đây là tệp hàng loạt của tôi có tên run_tasks.bat:

@ECHO OFF
@ECHO Startz!
@ECHO Running Handlebars!

call handlebars html_templates -e html -f dist/html_templates.js

@ECHO Linting ES6 code

call eslint -c eslint.json src

@ECHO Running Babel ES6 to ES5

call babel src --out-dir dist --source-maps

@ECHO Now startzing page up in browser!
index.html

@ECHO Donezz it!

Và đây là tệp task.json của tôi:

{ 
    "version": "0.1.0",
    "command": "${workspaceRoot}/run_tasks.bat",
    "isShellCommand": true,
    "isWatching": true,
    "showOutput": "always",

    "args": [],

    "tasks": [
        {
            "taskName": "build",
            "isBuildCommand": true,
            "isWatching": true,
            "showOutput": "always"
        }
}

Sau đó, trong VSCode, tôi nhấn “CTRL + SHIFT + B” để chạy tệp loạt của mình.


1

Tôi có một ứng dụng Electron cần biên dịch một biểu định kiểu nhỏ hơn, sau đó xây dựng và khởi chạy chương trình. Tôi đã sử dụng giải pháp của @ Ocean's phù hợp với tôi ... không có gì khác hoạt động.

Cả tệp task.json và build-task.bat của tôi đều nằm trong thư mục .vscode trong thư mục gốc của dự án.

build-task.bat

@ECHO OFF
@ECHO Begin!
@ECHO Compiling Less

call lessc ./css/styles.less ./css/styles.css

@ECHO Build Electron App and Launch

call electron ./app.js

@ECHO Finished!

task.json

{
    "version": "0.1.0",
    "command": "${workspaceRoot}\\.vscode\\build-tasks.bat",
    "isShellCommand": true,
    "isWatching": true,
    "showOutput": "always",

    "args": [],

    "tasks": [
        {
            "taskName": "build",
            "isBuildCommand": true,
            "isWatching": true,
            "showOutput": "always"
        }
    ]
}

0

Nhờ chủ đề này, bây giờ tôi có c # / dnxcore50 xây dựng và thử nghiệm gỡ lỗi, v.v. hoạt động trong vscode trên osx với điều này:

{
"version": "0.1.0",
"command": "bash",
"args": [
],
"tasks": [
    {
        "taskName": "xbuild",
        "args": [
            "./src/Service.Host/Service.Host.csproj"
        ],          

        "showOutput": "always",
        "problemMatcher": "$msCompile",
        "isBuildCommand": true
    },
    {
        "taskName": "dnx",
        "args" : ["-p", "./test/Service.Tests.Unit", "test"],
        "isTestCommand": true,
        "showOutput": "always"    
    }      
]
}

Tôi chắc chắn rằng về cơ bản linux sẽ giống nhau. Điều duy nhất đang làm phiền tôi là phải duy trì các tệp .csproj chỉ để gỡ lỗi. Tôi đang mong đợi một cách để gỡ lỗi với dnx, mặc dù tôi đã không tìm kiếm trong vài tuần nay.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.