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
J'avais besoin d'ajouter ce code
tasks.json
"options":{
"cwd": "${workspaceRoot}/Core"
}
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"
],
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"
}
]
}
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.