Je suis impatient de lancer asp.net mvc apps dans vscode mais il semble que les seules pages que j'ai trouvées sur Google soient avec asp.net core, ce qui n'est pas ce que je recherche. Quelqu'un peut me guider avec quelques étapes, j'ai installé des plugins comme c # et msbuild. Après avoir tenté de l'exécuter. il affiche l'erreur suivante:
"Échec du lancement du programme externe msbuild. Spawn msbuild ENOENT"
J'ai créé un fichier gulpfile qui gère la construction pour moi:
Vous pouvez trouver le fichier gulpfile sur mon projet Github
L'erreur Failed to launch external program msbuild . spawn msbuild ENOENT
survient parce que vscode\task runner ne peut pas trouver msbuild.
Pour exécuter asp.net mvc 4.5 dans l'éditeur de code Visual Studio, vous devez installer les outils msbuild (j'ai installé la version 2017) et IIS Express.
Vous pouvez utiliser vswhere pour vérifier l'emplacement de msbuild, dans mon cas, c'est C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\MSBuild\\15.0\\Bin\\msbuild.exe
Dans vscode, exécutez la commande Tasks: Configure Task Runner
et éditez le contenu de tasks.json en fonction du fichier.
{
"version": "0.1.0",
"taskSelector": "/t:",
"showOutput": "silent",
"tasks": [
{
"taskName": "build",
"args": [
// Ask msbuild to generate full paths for file names.
"/property:GenerateFullPaths=true"
],
"windows": {
// change according your msbuild location
"command": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\MSBuild\\15.0\\Bin\\msbuild.exe"
},
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
// Use the standard MS compiler pattern to detect errors, warnings and infos
"problemMatcher": "$msCompile"
},
{
"suppressTaskName": true,
"taskName": "iisexpress",
"isShellCommand": true,
"windows": {
"command": "C:\\Program Files (x86)\\IIS Express\\iisexpress.exe"
},
"args": [
// change according your project folder and desired port
"/path:${workspaceRoot}\\MyProjectFolder",
"/port:51714"
],
// Show the iisexpress output always.
"showOutput": "always"
}
]
}
Vous n'avez pas besoin de redémarrer votre IIS à chaque changement, il vous suffit de créer l'application CTRL+SHIFT+B
.
Si vous ne voulez pas arrêter IIS, utilisez la commande vscode Tasks: Terminate Running Task
.
Références:
Conformément à la documentation de VS Code, VS Code ne prend pas en charge le débogage d'applications exécutées sur Desktop .NET Framework. L'application ASP.NET MVC (bien que ASP.NET Core soit prise en charge) n'est pas reconnue par VS Code. Par conséquent, VS Code est un outil léger pour éditer un fichier. Ils recommandent d'utiliser Visual Studio Community.
Pour Visual Studio Code 1.30.2, je l'ai configuré pour créer et exécuter mes applications ASP.NET dans IISExpress à l'aide de la configuration suivante.
Terminal -> Configurer les tâches
Sélectionnez ensuite le fichier Create tasks.json à partir de l'entrée de modèle.
Une fois que vous faites cela, puis sélectionnez le modèle MSBuild
Cela créera le modèle de tâche de génération MS par défaut.
Vous devriez pouvoir copier les éléments suivants dans le fichier task.json:
{
// See https://go.Microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
//Task for building your ASP.NET Solution
{
"label": "build",
"type": "Shell",
"command": "msbuild",
"args": [
// Ask msbuild to generate full paths for file names.
"/property:GenerateFullPaths=true",
"/t:build"
],
"windows": {
"command": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\MSBuild\\15.0\\Bin\\msbuild.exe"
},
"group": "build",
"presentation": {
// Reveal the output only if unrecognized errors occur.
"reveal": "always"
},
// Use the standard MS compiler pattern to detect errors, warnings and infos
"problemMatcher": "$msCompile"
},
//Task for running App in IIS Express
//You can add additional projects here if you want to run more than one project in IIS Express
//For example this shows how I'm running my WebApp and API locally in IIS Expresse
{
"label": "iisexpress-WebApp",
"type": "Shell",
"windows": {
"command": "C:\\Program Files (x86)\\IIS Express\\iisexpress.exe"
},
"args":[
"/path:${workspaceRoot}\\Web",
"/port:52945"
],
"presentation": {
"reveal": "always"
}
},
{
"label": "iisexpress-API",
"type": "Shell",
"windows": {
"command": "C:\\Program Files (x86)\\IIS Express\\iisexpress.exe"
},
"args":[
"/path:${workspaceRoot}\\Api",
"/port:49243"
],
"presentation": {
"reveal": "always"
}
}
]
}
Une fois que vous enregistrez le fichier, appuyez simplement sur Ctrl + Maj + B et sélectionnez la tâche Construire dans la fenêtre. Si tout se passe bien, vous devriez voir la sortie affichée dans le terminal ci-dessous.
Ensuite, pour lancer vos applications dans IIS, accédez à Terminal -> Exécuter la tâche.
Cette fenêtre montrera ensuite vos tâches IIS Express, sélectionnez celle que vous souhaitez lancer et vous devriez voir la fenêtre de sortie afficher IIS en train de démarrer. Une fois que cela est réussi, ouvrez simplement votre navigateur et accédez à localhost: {portyouconfigured} et vous devriez voir votre application en cours d'exécution.
Depuis Visual Studio Code 1.14
Il existe une nouvelle syntaxe pour créer des tâches.
Dans votre Menu Cliquez sur
Terminal -> Configurer les tâches
Créez une tâche dans vscode qui construira votre projet comme suit:
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"args": [
"/property:GenerateFullPaths=true",
"/target:Build",
],
// Path to your msbuild
// The path used corresponds to the path provided by a Visual Studio 2017 installation.
// To find it your msbuild path, go in your file Explorer, and search for "msbuild.exe".
"windows": {
"command": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\MSBuild\\15.0\\Bin\\msbuild.exe"
},
"problemMatcher": "$msCompile"
}
]
}
Le chemin utilisé correspond au chemin fourni par une installation de Visual Studio 2017 . Pour le trouver votre chemin msbuild, allez dans votre explorateur de fichiers et recherchez "msbuild.exe".