Liens
Ctrl + Shift + P |
Lancer une commande
|
Ctrl + Shift + I |
Formater le code
|
Ctrl + ! |
Afficher le terminal
|
Utilisation
|
# créé le template "Console Application" (vscode.csproj Program.cs)
dotnet new console
# lister les templates disponibles
dotnet new -l
# lancer VS code dans le répertoire courant
code .
|
|
À l'ouverture de vscode, les éléments manquants sont téléchargés automatiquement (OmniSharp, .NET Core Debugger) |
Settings
File → Preferences → Settings Ctrl + ,
Règlages
|
Setting
|
Value
|
Side Bar à droite |
Side Bar: Location |
right
|
Formatter à la sauvegarde |
Editor: Format On Save Editor: Format On Paste
|
Font |
Editor: Font Family Editor: Font Size |
'Droid Sans Mono' 16
|
Word Wrap |
Editor: Word Wrap |
on
|
Cursor |
Editor: Cursor Blinking |
phase
|
Auto Save |
Files: Auto Save |
onFocusChange
|
Nb de fichiers dans Open Editors |
Explorer - Open Editors: Visible |
0
|
OLD
|
"window.zoomLevel": 1,
"explorer.enableDragAndDrop": false,
// Git Bash (défaut: powershell )
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
|
File → Preferences → Color Theme
Color theme files are located at /usr/lib/code/extensions/theme-*
Extensions
Dernier élément du menu de gauche ou View → Extensions
- ~/.vscode/extensions
- %USERPROFILE%\.vscode\extensions
Communes
Nom de l'extension
|
Description
|
vscode-icons |
belles icônes dans l'arborescence de fichiers
|
Azure Repos |
- Ctrl + P
- > team signin
|
Git History |
affiche l'historique des commits
|
Create GUID |
génère un GUID et le copie dans le presse-papier
|
C#
Nom de l'extension
|
Description
|
C# Extensions |
- clique-droit → new C# classe / interface
- ajouter des champs / propriétés depuis les arguments du ctor
- initialiser un ctor avec les propriétés de la classe
|
NuGet Gallery |
installation / désinstallation de package NuGet
|
.NET Core Test Explorer |
tests unitaires
|
C# XML Documentation Comments |
commentaires avec ///
|
ILSpy .NET Decompiler |
décompiler des assemby - Ctrl+Shift+P → ilspy
|
Cette extension recherche dans le dossier courant les fichiers *.csproj et *.sln pour découvrir les projects de test.
|
# create a folder and a file MySolution/MySolution.sln
dotnet new sln -o MySolution
# add projets to the solution
dotnet sln add ./MyProject/MyProject.csproj
|
Angular
Nom de l'extension
|
Description
|
Angular v6 Snippets |
|
AngularDoc for Visual Studio Code |
arborescence pour navigation dans le code
|
Auto Import |
import auto dans les fichier TS
|
ESLint |
vérification du code javascript
|
markdownlint |
lint for MD
|
Markdown All in One |
format MD document + racourcis-clavier
|
TSLint |
vérification du code ts. Rules
Config ClientApp\tslint.json
|
TypeScript Hero |
- trie des imports, suppression des inutiles
- ajout des imports
|
Move TS |
Move TypeScript files and update relative imports
|
Auto Close Tag |
HTML / XML
|
Auto Rename Tag |
renomme la balise fermante en même temps que la balise ouvrante
|
- Ouvrir un second dossier dans le même VScode: File → Add Folder to Workspace (lien)
- Référencer un autre projet:
|
cd MainProject
dotnet add reference ../LibProject/LibProject.csproj
|
MainProject.csproj
|
<ItemGroup>
<ProjectReference Include="..\LibProject\LibProject.csproj" />
</ItemGroup>
|
- Ajouter compounds au fichier .vscode/launch.json du workspace.
- Dans Debug l'entrée définit dans compounds est disponible.
.vscode/launch.json
|
{
"version": "0.2.0",
"configurations": [
{
"name": "BlazorServerApp",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build BlazorServerApp",
"program": "${workspaceFolder}/BlazorServerApp/bin/Debug/netcoreapp3.1/BlazorServerApp.dll",
"args": [],
"cwd": "${workspaceFolder}/BlazorServerApp",
"stopAtEntry": false,
"serverReadyAction": {
"action": "openExternally",
"pattern": "^\\s*Now listening on:\\s+(https?://\\S+)"
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceFolder}/Views"
}
},
{
"name": "WebApi",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build WebApi",
"program": "${workspaceFolder}/WebApi/bin/Debug/netcoreapp3.1/WebApi.dll",
"args": [],
"cwd": "${workspaceFolder}/WebApi",
"stopAtEntry": false,
"serverReadyAction": {
"action": "openExternally",
"pattern": "^\\s*Now listening on:\\s+(https?://\\S+)"
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"sourceFileMap": {
"/Views": "${workspaceFolder}/Views"
}
}
],
"compounds": [
{
"name": "BlazorServerApp / WebApi",
"configurations": [
"BlazorServerApp",
"WebApi"
],
"preLaunchTask": "build all"
}
]
}
|
|
Lister les build tasks: Ctrl + Shift + B ou Terminal → Run Build Task |
.vscode/tasks.json
|
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/WebApi.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/WebApi.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "watch",
"command": "dotnet",
"type": "process",
"args": [
"watch",
"run",
"${workspaceFolder}/WebApi.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
}
]
}
|
Appeler d'autres taches
.vscode/tasks.json
|
{
"version": "2.0.0",
"tasks": [
{
"label": "build all",
"dependsOn": [
"build server",
"build client"
],
"group": "build",
"problemMatcher": []
},
{
"label": "build server",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/Server/Server.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"group": "build",
"problemMatcher": "$msCompile"
},
{
"label": "build client",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/Client/Client.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary"
],
"group": "build",
"problemMatcher": "$msCompile"
}
]
}
|
launch
.vscode/tasks.json
|
{
"name": "Service .NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build Service",
"program": "${workspaceFolder}/Service/bin/Debug/netcoreapp3.1/Service.dll",
"args": [],
"cwd": "${workspaceFolder}/Service",
"stopAtEntry": false,
"serverReadyAction": {
"action": "openExternally",
"pattern": "^\\s*Now listening on:\\s+(https?://\\S+)",
"uriFormat": "%s/swagger"
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"logging": {
"engineLogging": true
}
}
|
Quand l’application est lancée avec dotnet run, launchSettings.json est lu s’il est disponible:
- le premier profil avec "commandName": "Project" est utilisé
- les paramètres environmentVariables remplacent les variables d’environnement
launchSettings.json
|
{
"profiles": {
"MyApp": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
|
- installer l'extension mssql
- nouvelle page → en bas à droite clique sur Plain Text → choisir SQL
- ou ouvrir un fichier *.sql
- F1 → MS SQL: Connect ou cliquer sur Disconnected en bas à droite → Create Connection Profile
- Ctrl + Shift + E exécuter du code
Erreurs
Error processing 'handshake' request. Unknown Error: 0x89720010
C# debugging doesn't start the application.
Microsoft .NET Core Debugger only works with Microsoft Visual Studio Code and not with Visual Studio Code OSS (link).
|
# Afficher le nombre max de fichiers qui peuvent être surveillés
cat /proc/sys/fs/inotify/max_user_watches
# Modifier temporairement le nombre max de fichiers qui peuvent être surveillés
echo 65536 > /proc/sys/fs/inotify/max_user_watches
# Modifier le nombre max de fichiers qui peuvent être surveillés (Archlinux)
echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
|
Microsoft.Common.props was not found
Microsoft.Build.Exceptions.InvalidProjectFileException: The imported project "/usr/lib/mono/xbuild/15.0/Microsoft.Common.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. /opt/dotnet/sdk/2.1.105/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props
Installer MSBuild
|
yaourt msbuild
# aur/msbuild-15-bin 15.5_xamarinxplat.2017.08.16.12.03_0xamarin3_ubuntu1404b1-3
msbuild /ver
|
MSBUILD : error MSB1025: An internal failure occurred while running MSBuild.
System.InvalidOperationException: The terminfo database is invalid.
|
TERM=xterm dotnet build
TERM=xterm dotnet run
echo $TERM # xterm-256color
|
Visual studio code is a code editor redefined, available on Windows, Linux and OS X, optimized for building web and cloud applications.
|
# Visual Studio Code open source distribution: code-oss
pacman -S code
# Microsoft's Visual Studio Code distribution
yay visual-studio-code-bin
|
Differences between the repository and Visual Studio Code
Extension C#
Installer l'extension C#:
- Bouton extension: dernier bouton du menu latéral de gauche
- Rechercher C#
|
# installer .NET core sdk pour compiler des applications et ses dépendances
yaourt dotnet-sdk-2.0
|
File → Preferences → Settings
|
{
"csharp.fallbackDebuggerLinuxRuntimeId": "ubuntu.16.10-x64"
}
|
|
# erreur Debug adapter process has terminated unexpectedly
yaourt icu57
|