【问题标题】:Couldn't find 'project.json' in current directory - .NET Core Webapp debugging在当前目录中找不到“project.json” - .NET Core Webapp 调试
【发布时间】:2016-09-22 23:39:19
【问题描述】:

我正在尝试使用 .NET Core RC2 和 Visual Studio Code 在 OSX 环境中设置调试。尝试运行调试器时出现以下错误。

Couldn't find 'project.json' in current directory

目前我已经在 Visual Studio Code 中设置了 launch.json(见下文)并选择了 .NET Core Launch (web)。 由于我的项目位于名为 Core 的文件夹中并与其他两个文件夹共享空间,因此我的结构如下所示。

结构
--.vscode
------ 启动.json
------ 任务.json

-- 核心

-- 核心数据

-- 核心服务

launch.json

{
"version": "0.2.0",
"configurations": [
    {
        "name": ".NET Core Launch (console)",
        "type": "coreclr",
        "request": "launch",
        "preLaunchTask": "build",
        "program": "${workspaceRoot}/Core/bin/Debug/netcoreapp1.0/Core.dll",
        "args": [],
        "cwd": "${workspaceRoot}/Core",
        "stopAtEntry": false
    },
    {
        "name": ".NET Core Launch (web)",
        "type": "coreclr",
        "request": "launch",
        "preLaunchTask": "build",
        "program": "${workspaceRoot}/Core/bin/Debug/netcoreapp1.0/Core.dll",
        "args": [],
        "cwd": "${workspaceRoot}/Core",
        "stopAtEntry": false,
        "launchBrowser": {
            "enabled": true,
            "args": "${auto-detect-url}",
            "windows": {
                "command": "cmd.exe",
                "args": "/C start ${auto-detect-url}"
            },
            "osx": {
                "command": "open",
                "args": "-a chrome ${auto-detect-url}"
            },
            "linux": {
                "command": "xdg-open"
            }
        }
    },
    {
        "name": ".NET Core Attach",
        "type": "coreclr",
        "request": "attach",
        "processName": "<example>"
    }
]
}

文件夹结构

【问题讨论】:

  • 可能是个愚蠢的问题,但您是否在应用程序的根目录中定义了project.json
  • @JamesP 这不是一个愚蠢的问题。 :) project.json 位于名为 Core 的文件夹中,这意味着 project.json 不直接位于 /src 文件夹的根目录中。似乎它在那里寻找它,这导致了问题。我不明白的是如何将其配置为 src/Core/project.json?
  • 你的根目录中有global.json,里面有"projects": [ "src", "test" ]这样的东西吗?
  • @Dmitry 是的,就像你写的一样。我应该配置它吗?怎么样?
  • 试试这个内容:{ "projects": [ "src" ], "sdk": { "version": "1.0.0-preview1-002702" } }。 Azure 和 VS2015 需要此文件。不确定 VS Code,但请尝试一下。

标签: asp.net-core asp.net-core-mvc visual-studio-code


【解决方案1】:

我需要添加此代码

tasks.json

 "options":{
    "cwd": "${workspaceRoot}/Core"
 }

【讨论】:

  • 这个答案出现在低质量审查队列中,大概是因为您没有提供任何代码解释。如果此代码回答了问题,请考虑在答案中添加一些解释代码的文本。这样一来,您就更有可能获得更多支持,并帮助提问者学习新知识。
  • 这也解决了我的问题。我希望能够打开根解决方案文件夹并让它运行 WebApi。在 tasks.json 的根目录中添加上面提到的选项告诉代码从 WebApi 运行并使用它的 project.json。
  • 这对我也有用。这表示执行的命令或脚本的当前工作目录(如 vscode 所示),默认为 ${workspaceRoot}。我不确定标记的解决方案如何对其他人起作用,因为如果没有正确设置此值,项目甚至都无法构建。
【解决方案2】:

没有一个答案对我有帮助。我刚刚指定了 project.json 的整个路径,它开始正常工作。

tasks.json

{
"version": "0.1.0",
"command": "dotnet",
"isShellCommand": true,
"args": [],
"tasks": [
    {
        "taskName": "build",
        "args": [
            "${workspaceRoot}\\project.json"
        ],
        "isBuildCommand": true,
        "problemMatcher": "$msCompile"
    }
]}

所以,对于这个特定的问题,它会是

"args": [
        "${workspaceRoot}\\Core\\project.json"
    ],

【讨论】:

    【解决方案3】:

    我也遇到了这个问题。我能够通过在应用程序的入口点中指定 WebHostBuilder 的内容根来修复它。确保您的入口点方法如下所示:

    public static void Main(string[] args)
    {
        var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();
    
        host.Run();
    }
    

    该代码的重要部分是:

    .UseContentRoot(Directory.GetCurrentDirectory())
    

    这告诉主机在哪里可以找到您的网站资产,包括 project.json 和您的 MVC 视图。

    【讨论】:

      【解决方案4】:

      在 Ubuntu 16.10 上,我进入了 tasks.json 文件,并将单个 args 属性中的 \\ 更改为 /,如下所示:

      "${workspaceRoot}\\project.json"

      "${workspaceRoot}/project.json"

      之后它完美无缺。下面是我的整个tasks.json(它来自一个dotnet core starter project)

      {
          "version": "0.1.0",
          "command": "dotnet",
          "isShellCommand": true,
          "args": [],
          "tasks": [
              {
                  "taskName": "build",
                  "args": [
                      "${workspaceRoot}/project.json"
                  ],
                  "isBuildCommand": true,
                  "problemMatcher": "$msCompile"
              }
          ]
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多