简体   繁体   English

Visual Studio Code 调试默认的 ASP.NET Core MVC WebApp:不起作用

[英]Visual Studio Code debugging the default ASP.NET Core MVC WebApp: does not work

I am using Manjaro linux and tried to debug the default ASP.NET Core MVC project but the debugging stopped without any error我正在使用 Manjaro linux 并尝试调试默认的 ASP.NET Core MVC 项目,但调试停止,没有任何错误

I created the project with: dotnet new mvc in a Meow folder, nothing special, and then added a new configuration .NET Core Launch (web) .我创建了项目: dotnet new mvc in a Meow文件夹,没什么特别的,然后添加了一个新的配置.NET Core Launch (web)

It turns out that there is only a call to dotnet build defined in the build task in tasks.json as defined in preLaunchTask of the launch.json and that's it the debugging process starts and stops without showing any error.事实证明,只有一个调用dotnet build的定义build的任务tasks.json中定义preLaunchTask中的launch.json ,这就是它的调试过程开始,而不显示任何错误停止。

When running dotnet run , everything works, so I am suspecting the issue comes more from my Visual Studio debug configuration.运行dotnet run ,一切正常,所以我怀疑问题更多地来自我的 Visual Studio 调试配置。

In terminal tab I have:在终端选项卡中,我有:

> 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.

The two files below that have been auto generated look fine.下面两个自动生成的文件看起来不错。

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 : tasks.json

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

[Update 1] [更新1]

Tried to uninstall omnisharp and reinstall it (with a VSCode reboot in between):尝试卸载 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

[Update 2] [更新2]

The debugger is installed properly (I tried a brand new fresh installed):调试器安装正确(我尝试了全新安装):

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

Also filed an issue on Github .也在 Github 上提交了一个 issue

I answered my own question on those GitHub issues:我在这些 GitHub 问题上回答了我自己的问题:

Basically steps of my solution on a fresh Manjaro Gnome variant live session:我在新的 Manjaro Gnome 变体实时会话中的解决方案的基本步骤:

  • Install ~~ yay to enjoy AUR without struggling with the command line: sudo pacman -Sy yay ~~ yay -S dotnet-sdk mono binutils msbuild-stable visual-studio-code-bin --noconfirm (see the [UPDATE] below).安装 ~~ yay享受 AUR,而无需在命令行中挣扎: sudo pacman -Sy yay ~~ yay -S dotnet-sdk mono binutils msbuild-stable visual-studio-code-bin --noconfirm (请参阅下面的 [更新]) .

  • Setup everything you need (aka the .NET Core SDK, Mono, MSBuild and Visual Studio Code Insiders): yay -S dotnet-sdk mono binutils msbuild-stable visual-studio-code-insiders --noconfirm设置您需要的一切(又名 .NET Core SDK、Mono、MSBuild 和 Visual Studio Code Insiders): yay -S dotnet-sdk mono binutils msbuild-stable visual-studio-code-insiders --noconfirm

    • Note: binutils cause the Gnome variant does not seem to embed that one natively, and this require for stripping in one of the steps of the msbuild-stable installation.注意: binutils导致 Gnome 变体似乎没有在本机嵌入该变体,这需要在msbuild-stable安装的步骤之一中进行剥离。
  • Add the required environment variables that you would like to export at the end of your .bashrc file in your home folder:在您的主文件夹中的.bashrc文件末尾添加您想要导出的所需环境变量:

    • export MSBuildSDKsPath=/opt/dotnet/sdk/$(dotnet --version)/Sdks
    • export PATH="$PATH:/home/manjaro/.dotnet/tools"
  • Create a dummy project: dotnet new mvc创建一个虚拟项目: dotnet new mvc

  • Start Visual Studio Code Insiders: code-insiders .启动 Visual Studio Code Insiders: code-insiders .

  • Install the C# extension CTRL + SHIFT + P ext install ms-vscode.csharp安装 C# 扩展CTRL + SHIFT + P ext install ms-vscode.csharp

  • Download the .NET Code Debugger for the C# extension (if needed / not already done the first time) CTRL + SHIFT + P Debug: Download .NET Core Debugger下载 C# 扩展的 .NET 代码调试器(如果需要/尚未第一次完成) CTRL + SHIFT + P Debug: Download .NET Core Debugger

  • Generate the launch.json and tasks.json files (if not already answered yes to the popup shows: "Would you like to add the required assets to build and debug your project?") CTRL + SHIFT + P .NET: Generate Assets for Build and Debug生成launch.jsontasks.json文件(如果还没有对弹出窗口回答是:“您想添加所需的资产来构建和调试您的项目吗?”) CTRL + SHIFT + P .NET: Generate Assets for Build and Debug

  • Install the tools for the development self-signed certificate dotnet tool install --global dotnet-dev-certs安装开发自签名证书dotnet tool install --global dotnet-dev-certs

  • Register the development self-signed certificate: dotnet dev-certs https注册开发自签名证书: dotnet dev-certs https

  • Debugging ( .NET Core Launch (web) ) CTRL + SHIFT + D F5调试 ( .NET Core Launch (web) ) CTRL + SHIFT + D F5

This is not stable though, as pointed by one of the comments in my initial post, Arch / Manjaro are not officially supported by the debugger, but I found that this is more related to the version of Visual Studio Code, atm it only worked with the insiders edition for some reasons I completely ignore.不过,这并不稳定,正如我最初的帖子中的一条评论所指出的,调试器不正式支持 Arch / Manjaro,但我发现这与 Visual Studio Code 的版本更相关,atm 仅适用于由于某些原因我完全忽略了内部人士版。

I will keep this answer updated whenever I will notice that I will no longer need to resort to the Insiders Edition.每当我注意到我将不再需要使用 Insiders Edition 时,我都会更新此答案。


[UPDATE] The official Visual Code AUR page shows the different versions available: [更新]官方 Visual Code AUR 页面显示了可用的不同版本:

The following packages provide VSCode:以下软件包提供了 VSCode:

  • code (open-source release)代码(开源版本)
  • visual-studio-code-bin AUR (Microsoft-branded release) visual-studio-code-bin AUR(微软品牌版本)
  • code-git AUR (in-development open-source version) code-git AUR(开发中的开源版本)

I think I may have had installed the wrong version at first (the non insiders one was the open source release: code .我想我一开始可能安装了错误的版本(非内部人员是开源版本: code .

Actually when playing with the official tar.gz from the website (which is the hard way equivalent of installing visual-studio-code-bin ) it worked fine.实际上,当使用网站上的官方tar.gz (这是一种相当于安装visual-studio-code-bin的困难方式),它运行良好。

The right way is to (obviously) go with the official Microsoft branded release: visual-studio-code-bin .正确的方法是(显然)使用官方的 Microsoft 品牌版本: visual-studio-code-bin

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用 Visual Studio 代码创建 Asp.net MVC 应用程序(非核心) - Create Asp.net MVC Application (not core) with visual studio code 通过Visual Studio的ASP.NET MVC核心部署不起作用 - ASP.NET MVC Core Deployment via Visual Studio does not work 将asp.net核心React-Redux WebApp从VS2017迁移到Visual Studio Code? - Migrate asp.net core React-Redux WebApp from VS2017 to Visual Studio Code? ASP.NET MVC 5身份验证:默认代码如何工作? - ASP.NET MVC 5 authentication: how does default code work? ASP.NET Visual Studio Codespaces 中的核心应用程序调试问题 - ASP.NET Core app in Visual Studio Codespaces debugging issue ASP.NET Core 在 Linux 上的 Visual Studio Code 中调试时修改视图 - ASP.NET Core Modify Views While Debugging in Visual Studio Code on Linux Visual Studio 2017 不会在 ASP.NET Core MVC 项目中创建新的空 MVC 控制器 - Visual Studio 2017 does not create a new empty MVC controller in ASP.NET Core MVC project Visual Studio 2019 中的默认 ASP.NET Core + React 模板不起作用 - The default ASP.NET Core + React template in Visual Studio 2019 doesn't work 在ASP.Net Core MVC中未调用LoginController(在Visual Studio Code中) - LoginController not being called in ASP.Net Core MVC (In Visual Studio Code) 在 Visual Studio Code 中的 asp.net 核心 mvc 中实现 jquery 插件数据表 - Implementing jquery plugin datatable in asp.net core mvc in Visual Studio Code
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM