Код 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 в путь помогает
Ответы
Ответ 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"
}
]
}