代码之家  ›  专栏  ›  技术社区  ›  Natalie Perret

Visual Studio代码调试默认ASP.NET核心MVC WebApp:无效

  •  1
  • Natalie Perret  · 技术社区  · 7 年前

    我创建项目时使用了: dotnet new mvc 在一个 Meow 文件夹,没有什么特别的,然后添加了一个新的配置 .NET Core Launch (web) .

    事实证明,只有一个呼叫 dotnet build build 任务 tasks.json 定义见 preLaunchTask launch.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]

    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]

    调试器安装正确(我尝试了全新安装的调试器):

    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 .

    1 回复  |  直到 7 年前
        1
  •  1
  •   Natalie Perret    7 年前

    我就这些GitHub问题回答了自己的问题:

    • 安装~~ yay sudo pacman -Sy yay ~~ yay -S dotnet-sdk mono binutils msbuild-stable visual-studio-code-bin --noconfirm (请参阅下面的[更新])。

    • 设置所需的一切(也称为.NET核心SDK、Mono、MSBuild和Visual Studio代码内部人员): 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

    • code-insiders .

    • 控制键 + 转移 P ext install ms-vscode.csharp

    • 控制键 + 转移 + Debug: Download .NET Core Debugger

    • launch.json tasks.json 文件(如果尚未对弹出窗口回答“是”,则显示“是否要添加所需的资产以构建和调试项目?”) 控制键 + + .NET: Generate Assets for Build and Debug

    • 安装用于开发自签名证书的工具 dotnet tool install --global dotnet-dev-certs

    • 注册开发自签名证书: dotnet dev-certs https

    • 调试( .NET Core Launch (web) ) 控制键 转移 + D F5

    虽然这并不稳定,正如我在第一篇帖子中的一条评论所指出的,Arch/Manjaro没有得到调试器的正式支持,但我发现这与Visual Studio代码的版本更相关,因为我完全忽略了某些原因,它只与insiders版本一起工作。

    每当我注意到我不再需要求助于内部人版本时,我会不断更新这个答案。


    [更新] The official Visual Code AUR page 显示了可用的不同版本:

    • visual studio代码bin AUR(Microsoft品牌发布版)
    • 代码git AUR(开发中的开源版本)

    code .

    其实在跟官员玩的时候, tar.gz visual-studio-code-bin )它工作得很好。

    正确的方法是(显然)采用微软品牌的官方版本: .