Подтвердить что ты не робот

Код Visual Studio, поддержка С# в Windows

Я хочу попробовать новый редактор от Microsoft - Visual Studio Code. Я хочу реализовать простое приложение (например, Hello, World) и уметь его отлаживать. Но после многих попыток и попыток, я не смог этого сделать. Это возможно? У меня установлена ​​Windows 10 с установленной Visual Studio 2015.

Что я пытался сделать:

1) Раскомментируйте следующее в файле tasks.json:

{
"version": "0.1.0",
"command": "msbuild",
"args": [
    // Ask msbuild to generate full paths for file names.
    "/property:GenerateFullPaths=true"
],
"taskSelector": "/t:",
"showOutput": "silent",
"tasks": [
    {
        "taskName": "build",
        // Show the output window only if unrecognized errors occur.
        "showOutput": "silent",
        // Use the standard MS compiler pattern to detect errors, warnings
        // and infos in the output.
        "problemMatcher": "$msCompile"
    }
]

Но компиляция (ctrl-shift-b) завершается с ошибкой: "Не удалось запустить внешнюю программу msbuild. spawn msbuild ENOENT "

2) Прочтите эту статью: http://michaelcrump.net/creating-and-debugging-console-apps-with-vscode/, но у меня нет файла project.json, также "dnx . run" с ошибкой "System.InvalidOperationException: невозможно выполнить проект"

Есть ли простой способ запускать простое приложение С# в VS Code? Мне интересно, почему это так сложно. Наверное, я что-то упускаю, любые идеи приветствуются.

Обновление 1: Добавление msbuild в путь помогает

4b9b3361

Ответ 1

Поддержка С# в VS Code оптимизирована для кросс-платформенной .NET. (DNX) (см. работу с ASP.NET 5 и VS Code для другого соответствующая статья. Наш подход к VS Code - отличный редактор для cross platfrom С# development - например, многие разработчики Unity наслаждались использованием VS Code вместо Mono Develop.

Мы поддерживаем отладку приложений С# для перехода через Mono (см. Mono Отладка).

В связи с этим многие стандартные типы проектов С# не распознаются Код VS. Примером не поддерживаемого типа проекта является ASP.NET MVC Заявка. В этих случаях, если вы просто хотите иметь легкий вес инструмент для редактирования файла - VS Code вы охватили. Если вы хотите возможный опыт для этих проектов и разработка в Windows в мы рекомендуем вам использовать сообщество Visual Studio.

from: code.visualstudio.com/Docs/languages/csharp


Обновление, июнь 2017 года:

С# поддерживается в коде Visual Studio с использованием расширения Microsoft VS Code С#: https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp

Это можно установить, выполнив поиск 'С#' в Extensions: Install Extension. Кроме того, при открытии файла .cs следует запросить установку расширения.

Это расширение поддерживает отладку приложений С#, работающих на .NET Core или Моно, однако не поддерживает отладочные приложения, запущенные на платформе .NET Framework - Сообщество Visual Studio по-прежнему рекомендуется для полной поддержки проекта .NET.

Для получения дополнительной информации о поддержке VS Code С# см. https://code.visualstudio.com/docs/languages/csharp

Для страницы рынка для расширения VS Code С# см. https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp

Ответ 2

Вы можете настроить msbuild для полного создания приложений .NET, обратите внимание, что вы должны иметь msbuild по пути или предоставить полный путь к нему в свойстве command. Вот пример выполнения задачи построения (связанный с ctrl + shift + b):

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "MSBuild.exe",
    "args": [
        // $msCompile requires GenerateFullPaths=true, rest is optional. I set it to build Debug/Any CPU and use parallel project build
        "${workspaceRoot}/src/ExampleSolution.sln",
        "/p:Configuration=Debug;Platform=Any CPU;GenerateFullPaths=true",
        "/m"
    ],
    "taskSelector": "/t:",
    "showOutput": "silent",
    "echoCommand": true,
    "tasks": [
        {
            "taskName": "Rebuild",
            // Required if you want "Rebuild", not build as your target and still use ctrl + shift + b hotkey
            "isBuildCommand": true,
            // Show the output window only if unrecognized errors occur.
            "showOutput": "silent",
            // Use the standard MS compiler pattern to detect errors, warnings and infos
            "problemMatcher": "$msCompile"
        }
    ]
}

UPD. Если вы хотите настроить как создание, так и unit test, вы можете использовать что-то вроде этого (использует nunit консоль и cmd как задачу взломать vscode ограничение поддержки только одной задачи):

{
    "version": "0.1.0",
    "command": "cmd",
    "args": [
        "/c"
    ],
    "showOutput": "always",
    "echoCommand": true,
    "tasks": [
        {
            "isBuildCommand": true,
            "taskName": "MSBuild.exe",
            "args": [
                "${workspaceRoot}/src/Example.sln",
                "/t:Rebuild",
                "/p:Configuration=Debug;Platform=Any CPU;GenerateFullPaths=true",
                "/m"
            ],
            "showOutput": "always",
            "problemMatcher": "$msCompile"
        },
        {
            "taskName": "nunit3-console.exe",
            "args": [
                "${workspaceRoot}/src/Example.sln"
            ],
            "showOutput": "always"
        }
    ]
}

Ответ 3

Была такая же проблема. Изменен прямой путь к msbuild, исправлено:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "windows": {
        "command": "C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe"
    },
   // "command": "msbuild",
    "args": [
        // Ask msbuild to generate full paths for file names.
        "/property:GenerateFullPaths=true"
    ],
    "taskSelector": "/t:",
    "showOutput": "silent",
    "tasks": [
        {
            "taskName": "build",
            // Show the output window only if unrecognized errors occur.
            "showOutput": "silent",
            // Use the standard MS compiler pattern to detect errors, warnings and infos
            "problemMatcher": "$msCompile"
        }
    ]
}