Отладка кода Visual Studio по умолчанию ASP.NET Core MVC WebApp: не работает - PullRequest
0 голосов
/ 03 февраля 2019

Я использую Manjaro linux и пытался отладить проект по умолчанию ASP.NET Core MVC, но отладка остановилась без ошибок

Я создал проект с: dotnet new mvc в папке Meow, ничегоspecial, а затем добавил новую конфигурацию .NET Core Launch (web).

Оказывается, что существует только вызов dotnet build, определенный в задаче build в tasks.json, как определено в preLaunchTasklaunch.json и все, процесс отладки запускается и останавливается без каких-либо ошибок.

При запуске dotnet run все работает, поэтому я подозреваю, что проблема больше связана с моей конфигурацией отладки Visual Studio.

На вкладке терминала у меня есть:

> Executing task: dotnet build /home/perret/Desktop/Playground/CSharpmusement/Meow/Meow.csproj <

Microsoft (R) Build Engine version 15.9.20.63311 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 86.18 ms for /home/perret/Desktop/Playground/CSharpmusement/Meow/Meow.csproj.
  Meow -> /home/perret/Desktop/Playground/CSharpmusement/Meow/bin/Debug/netcoreapp2.2/Meow.dll
  Meow -> /home/perret/Desktop/Playground/CSharpmusement/Meow/bin/Debug/netcoreapp2.2/Meow.Views.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:04.62

Terminal will be reused by tasks, press any key to close it.

Два файла, которые были сгенерированы автоматически, выглядят хорошо.

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 Core Launch (web)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceFolder}/bin/Debug/netcoreapp2.2/Meow.dll",
            "args": [],
            "cwd": "${workspaceFolder}",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart",
            "launchBrowser": {
                "enabled": true,
                "args": "${auto-detect-url}",
                "windows": {
                    "command": "cmd.exe",
                    "args": "/C start ${auto-detect-url}"
                },
                "osx": {
                    "command": "open"
                },
                "linux": {
                    "command": "xdg-open"
                }
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ,]
}

tasks.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/Meow.csproj"
            ],
            "problemMatcher": "$msCompile"
        }
    ]
}

[Обновление 1]

Попытка удалить omnisharp и переустановить его (с перезагрузкой VSCode между ними):

Starting OmniSharp server at 2/3/2019, 11:19:16 AM
    Target: /home/perret/Desktop/Playground/CSharpmusement/Meow

OmniSharp server started with Mono 5.16.0.
    Path: /home/perret/.vscode-oss/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/OmniSharp.exe
    PID: 21990

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on manjaro 0.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 2 MSBuild instance(s)
            1: Mono 15.0 - "/usr/lib/mono/msbuild/15.0/bin"
            2: StandAlone 15.0 - "/home/perret/.vscode-oss/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: Mono 15.0 - "/usr/lib/mono/msbuild/15.0/bin"
            CscToolPath = /home/perret/.vscode-oss/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin/Roslyn
            CscToolExe = csc.exe
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in '/home/perret/Desktop/Playground/CSharpmusement/Meow'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Could not find any Cake files
[info]: OmniSharp.WorkspaceInitializer
        Project system 'OmniSharp.DotNet.DotNetProjectSystem' is disabled in the configuration.
[info]: OmniSharp.MSBuild.ProjectSystem
        No solution files found in '/home/perret/Desktop/Playground/CSharpmusement/Meow'
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/home/perret/Desktop/Playground/CSharpmusement/Meow/Meow.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in '/home/perret/Desktop/Playground/CSharpmusement/Meow'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Could not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpWorkspaceOptionsProvider
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location '/home/perret/Desktop/Playground/CSharpmusement/Meow' on host 21903.
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /home/perret/Desktop/Playground/CSharpmusement/Meow/Meow.csproj
[info]: OmniSharp.MSBuild.ProjectManager
        Successfully loaded project file '/home/perret/Desktop/Playground/CSharpmusement/Meow/Meow.csproj'.
[info]: OmniSharp.MSBuild.ProjectManager
        Adding project '/home/perret/Desktop/Playground/CSharpmusement/Meow/Meow.csproj'
[info]: OmniSharp.MSBuild.ProjectManager
        Update project: Meow

[Обновление 2]

Отладчик установлен правильно (я пробовал новый свежий инстаlled):

Installing C# dependencies...
Platform: linux, x86_64, name=manjaro, version=unknown

Downloading package 'OmniSharp for Linux (x64)' (30903 KB).................... Done!
Installing package 'OmniSharp for Linux (x64)'

Downloading package '.NET Core Debugger (linux / x64)' (59407 KB).................... Done!
Installing package '.NET Core Debugger (linux / x64)'

Downloading package 'Razor Language Server (Linux / x64)' (44979 KB).................... Done!
Installing package 'Razor Language Server (Linux / x64)'

Finished

Также подана проблема на Github .

1 Ответ

0 голосов
/ 11 февраля 2019

Я ответил на свой собственный вопрос по этим проблемам GitHub:

В основном шаги моего решения наСвежий живой вариант варианта Manjaro Gnome:

  • Установите ~~ yay, чтобы наслаждаться AUR без борьбы с командной строкой: sudo pacman -Sy yay ~~ yay -S dotnet-sdk mono binutils msbuild-stable visual-studio-code-bin --noconfirm (см. [ОБНОВЛЕНИЕ] ниже).

  • Настройте все, что вам нужно (иначе как .NET Core SDK, Mono, MSBuild и Visual Studio Code Insiders): yay -S dotnet-sdk mono binutils msbuild-stable visual-studio-code-insiders --noconfirm

    • Примечание:binutils потому что вариант Gnome, кажется, не встраивает его в себя, и это требует удаления на одном из шагов установки msbuild-stable.
  • Добавьтенеобходимые переменные среды, которые вы хотите экспортировать в конце вашего .bashrc файла в вашей домашней папке:

    • export MSBuildSDKsPath=/opt/dotnet/sdk/$(dotnet --version)/Sdks
    • export PATH="$PATH:/home/manjaro/.dotnet/tools"
  • Создание фиктивного проекта: dotnet new mvc

  • Запуск инсайдеров кода Visual Studio: code-insiders .

  • InstaРасширение C # CTRL + SHIFT + P ext install ms-vscode.csharp

  • Загрузите отладчик .NET Code дляРасширение C # (если необходимо / еще не сделано в первый раз) CTRL + SHIFT + P Debug: Download .NET Core Debugger

  • Создайте файлы launch.json и tasks.json (если вы еще не ответили, да, во всплывающем окне появится сообщение: «Хотели бы вы добавить необходимые ресурсы для создания и отладки вашего проекта?») CTRL + SHIFT + P .NET: Generate Assets for Build and Debug

  • Установить средства для разработки самоподписанного сертификата dotnet tool install --global dotnet-dev-certs

  • Зарегистрируйте самозаверяющий сертификат разработки: dotnet dev-certs https

  • Отладка (.NET Core Launch (web)) CTRL + SHIFT + D F5

Это нестабильно, хотя, как указано в одном из комментариев в моем первоначальном посте, Arch / Manjaro официально не поддерживаетсяотладчик, но я обнаружил, что это больше связанок версии Visual Studio Code, он работал только с инсайдерской версией по некоторым причинам, которые я полностью игнорирую.

Я буду обновлять этот ответ всякий раз, когда замечу, что мне больше не нужно прибегать к инсайдерамРедакция.


[ОБНОВЛЕНИЕ] Официальная страница визуального кода AUR показывает различные доступные версии:

Следующие пакетыпредоставить код VSCode:

  • (выпуск с открытым исходным кодом)
  • visual-studio-code-bin AUR (выпуск под брендом Microsoft)
  • code-git AUR (версия с открытым исходным кодом в разработке)

Я думаю, что я, возможно, сначала установил неправильную версию (одной из версий была версия с открытым исходным кодом: code.

На самом деле при игре с официальным tar.gz с веб-сайта (что является сложным способом установки visual-studio-code-bin) все работало нормально.

Правильный путь - это (очевидно) пойти с официальным фирменным релизом Microsoft: visual-studio-code-bin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...