Код Visual Studio для .Net Framework

Мне трудно понять, как и как я могу использовать Visual Studio Code для разработки и отладки команд командной строки/консоли/библиотек программ С#.Net, которые не может работать .NET Core, т.е. Они требуют .Net Framework. Мне нужно получить доступ к Oracle, у которого нет поставщика .Net Core, но у него есть управляемый поставщик .Net Framework. Я использую VS 2015/2017 для этой задачи, но хочу переключиться на VS-код, если бы я мог кодировать, создавать и отлаживать .Net Framework целевые С# -программы. Я пробовал поиск Google и ничего не нашел.

Ответ 1

Хорошо, хотя я опаздываю, я публикую этот ответ, так как он может помочь другим людям, сталкивающимся с этой проблемой, которая была для меня довольно утомительной.

Во-первых, более поздние обновления для Visual Studio Code поддерживают создание и отладку проектов для .NET Framework, но они очень ограничены:

Расширение С# поддерживает ограниченную полную отладку .NET Framework. Он может отлаживать только 64-битные приложения с помощью портативных PDB. https://github.com/OmniSharp/omnisharp-vscode/wiki/Desktop-.NET-Framework

Как говорится в GitHub OmniSharp (отвечает за расширение С#), проект должен быть 64-битным приложением с переносными PDB.

Но даже после прочтения многих вопросов и обсуждений на эту тему мне немного неясно, какие были необходимые шаги. Поэтому я покажу здесь небольшое руководство с шагами, которые я выполнил и которые спомогли мне, и, надеюсь, также сработают для вас.

1) Необходимые файлы/папки:

а).vscode с launch.json и tasks.json

б) папка bin\Debug для вашего exe-приложения и сборок, на которые вы можете создать ссылку

г) файлы .csproj и Program.cs

д) необязательно пакетный файл, назначение которого я опишу позже

2) Установите MSBuild 15

3) В файле .csproj:

  • измените Project Sdk = "Microsoft.NET.Sdk" на Project ToolsVersion = "15.0" xmlns = "http://schemas.microsoft.com/developer/msbuild/2003"

  • в первой группе свойств мы должны установить для параметра OutputType значение Exe (по умолчанию может быть dll), удалить свойство TargetFramework, заменив его на TargetFrameworkVersion со значением v4.6.1 (например, для .NET Framwork 4.6.1, например, 4.7) и, наконец, поставьте среды выполнения win-x64 и win7-x64 (и любые другие, на которые может пожаловаться компилятор). Эта первая группа должна выглядеть так:

 <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
    <RuntimeIdentifiers>win-x64;win7-x64</RuntimeIdentifiers>
 </PropertyGroup>

Ответ 2

Я просто создал простое консольное приложение и настроил файл csproj. После этого я мог подключить отладчик OmniSharp к полноценному приложению .NET Framework. Файл csproj выглядит так:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net47</TargetFramework>
    <PlatformTarget>x64</PlatformTarget>
    <DebugType>portable</DebugType>
  </PropertyGroup>

</Project>

Я просто следовал официальной документации: я изменил TargetFramework для работы на .NET 4.7, PlatformTarget на 64-битный и DebugType на переносимый.

Кроме того, я обновил launch.json:

{
   // Use IntelliSense to find out which attributes exist for C# debugging
   // Use hover for the description of the existing attributes
   // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
   "version": "0.2.0",
   "configurations": [
        {
            "name": ".NET Launch (console)",
            "type": "clr",
            "request": "launch",
            "preLaunchTask": "build",
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceFolder}/bin/Debug/net47/FullNetInVsCode.exe",
            "args": [],
            "cwd": "${workspaceFolder}",
            // For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
            "console": "internalConsole",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "name": ".NET Attach",
            "type": "clr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ,]
}

В этом файле я просто изменил type на clr как в объектах JSON, так и в целевой program для исполняемого файла.

После этого я могу установить точку останова и просто нажать клавишу F5, чтобы начать отладку на полной платформе .NET:

Debugging full .NET framework in VS Code

Ответ 3

https://code.visualstudio.com/docs/languages/csharp

Цитата:

Примечание. Код VS не поддерживает отладки приложений, работающих на рабочем столе .NET Framework.

Похоже, что IDE Visual Studio "полный жир" остается требованием для .Net Framework. Основная жалость.

Ответ 4

К сожалению, он не содержит intellisense для C/С++, только синтаксис выделение: code.visualstudio.com/docs/languages ​​EDIT: нет отладчика интеграция для C/С++. Интеграция git действительно хороша хоть! Кажется более разработанным для веб-приложений, работает отладчик для node.js

В то время как это не указывает С#, разумно, что применяются одни и те же стандарты (то есть, нет отладчика и нет функций компиляции).

Цитата из комментария к первому ответу Что такое код Visual Studio?