web-dev-qa-db-fra.com

Impossible de trouver 'project.json' dans le répertoire actuel - Débogage .NET Core Webapp

J'essaie de configurer le débogage sur un environnement OSX à l'aide de .NET Core RC2 et de Visual Studio Code. L'erreur suivante est générée lors de la tentative d'exécution du débogueur.

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

Actuellement, j'ai configuré launch.json (voir ci-dessous) et choisi .NET Core Launch (Web) dans Visual Studio Code. Mon projet se trouvant dans un dossier appelé Core et partageant un espace avec deux autres dossiers, ma structure a l'air comme ça.

Structure
-. vscode
------ launch.json
------ tasks.json

-- Coeur

-- Données de base

- Core.Service

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>"
    }
]
}

Structure du dossier

 enter image description here

9
Rovdjuret

J'avais besoin d'ajouter ce code

tasks.json

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

Aucune des réponses ne m'a aidé. Je viens de spécifier le chemin d'accès complet à project.json et cela a commencé à bien fonctionner.

tasks.json

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

Donc, pour cette question particulière, il serait

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

Sur Ubuntu 16.10, je suis allé dans le fichier tasks.json et j'ai changé le \\ en / dans la propriété unique args comme ci-dessous:

"${workspaceRoot}\\project.json"

à

"${workspaceRoot}/project.json"

Après que cela a fonctionné sans faille. Vous trouverez ci-dessous l’ensemble de mes tâches.json (il s’agit d’un projet de démarrage du noyau).

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

J'ai rencontré ce problème aussi. J'ai pu résoudre ce problème en spécifiant la racine du contenu de WebHostBuilder dans le point d'entrée de l'application. Assurez-vous que votre méthode de point d'entrée ressemble à ceci:

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

    Host.Run();
}

La partie importante de ce code est:

.UseContentRoot(Directory.GetCurrentDirectory())

Cela indique à l'hôte où trouver les actifs de votre site, y compris project.json et vos vues MVC. 

0
Ketrex