LoginSignup
3
2

More than 5 years have passed since last update.

【VSCode】.NET Coreのエラー箇所へのジャンプが「ファイルが見つかりません」となる問題への対処

Last updated at Posted at 2018-07-14

問題点

WorkspaceRootがcsprojよりも上階層となるディレクトリ構成で.NET Coreの環境を構築したときに、自動生成されるビルドタスクだとエラー箇所へのジャンプが「ファイルが見つかりません」となり困ったため、これの対処方法を記載しておきます。

NGの構成

  • WorkspaceRoot
    • .vscode
      • launch.json
      • tasks.json
    • Project
      • Program.cs
      • Project.csproj

OKの構成

  • WorkspaceRoot
    • .vscode
      • launch.json
      • tasks.json
    • Program.cs
    • Project.csproj

対処方法

「task.json」の「problemMatcher」の設定で、相対参照のルートとなるディレクトリ設定を.csproがあるディレクトリに変更します。

変更前

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

変更後

tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/Project/Project.csproj"
            ],
            "problemMatcher": {
                "base": "$msCompile",
                "fileLocation": ["relative", "${workspaceRoot}/Project"]
            }
        }
    ]
}

現在分かっている問題

上記で示した対処は、別のライブラリプロジェクトを参照設定するようなプロジェクト構成で、かつ、ライブラリプロジェクト側にビルドエラーがあった場合はうまく認識しません。
「dotnet build」コマンドが出力するファイル名は、対象の.csprojのあるディレクトリをルートとしたものになっているようなのですが、対処方法で示した「problemMatcher」は参照元の.csprojがあるディレクトリ固定としているためです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2