Vscode-code-runner: [REQUEST] Un paramètre pour spécifier les compilateurs CSC et VBC

Créé le 20 janv. 2017  ·  4Commentaires  ·  Source: formulahendry/vscode-code-runner

Salut.

Tout d'abord, je tiens à remercier l'auteur d'avoir ajouté le support de VB.NET.

Je voudrais demander s'il serait possible d'implémenter deux paramètres dans le settings.json de VS Code/Code Runner pour spécifier les chemins des répertoires du compilateur CSC et VBC (ou encore mieux, juste un seul paramètre où spécifier le répertoire MSBUILD et supposez que les compilateurs CSC et VBC sont là, car les deux compilateurs sont toujours là par défaut installés par Visual Studio).

Je considère que forcer l'utilisateur à ajouter le chemin du répertoire à la variable d'environnement PATH est un peu intrusif et gênant, alors, la mise en œuvre de ce paramètre serait bien meilleure (et portabilisable) de ce point de vue.

PS : Désolé pour mon mauvais anglais.

Merci d'avoir lu !.

fyi

Commentaire le plus utile

Je voudrais juste partager une configuration qui évite les problèmes avec les noms de fichiers contenant des espaces :

  "code-runner.executorMap": {
        "csharp": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\csc.exe\" /nologo \"$fileName\" && \"$fileNameWithoutExt.exe\""
  },
  "code-runner.executorMapByFileExtension": { 
        ".vb": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\vbc.exe\" /nologo \"$fileName\" && \"$fileNameWithoutExt.exe\""
  } 

En plus de cette configuration ci-dessous, si vous souhaitez avoir une expérience complète de la compilation pour C# et VB.NET, il compile dans le répertoire C:WindowsTemp (pour éviter de générer des fichiers exécutables indésirables) et génère des informations sur le fichier de débogage et un fichier de documentation Xml, il fait également référence à des fichiers très courants et des assemblages importants pour gagner du temps et des maux de tête, et il optimise certains paramètres de débogage du compilateur qui le rendent plus robuste pour la compilation et l'analyse (ce sont les mêmes références et la même configuration d'importation/utilisation que j'utilise dans les fichiers de projet de mon Visual Studio .vbproj/.csproj par défaut):

  "code-runner.executorMap": {
        "csharp": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\csc.exe\" /nologo /preferreduilang:en-US /debug:full /warn:4 /doc:\"C:\\Windows\\Temp\\vs-code-runner.csharp.xml\" /reference:\"System.dll\",\"System.Core.dll\",\"System.Data.dll\",\"System.Data.DataSetExtensions.dll\",\"System.Deployment.dll\",\"System.DirectoryServices.AccountManagement.dll\",\"System.Drawing.dll\",\"System.Management.dll\",\"System.Net.dll\",\"System.Net.Http.dll\",\"System.Windows.Forms.dll\",\"System.Xml.dll\",\"System.Xml.Linq.dll\" /platform:anycpu /target:exe /out:\"C:\\Windows\\Temp\\vs-code-runner.csharp.exe\" \"$fileName\" && \"C:\\Windows\\Temp\\vs-code-runner.csharp.exe\""
  },
  "code-runner.executorMapByFileExtension": { 
        ".vb": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\vbc.exe\" /nologo /vbruntime+ /optionexplicit+ /optionstrict+ /optioninfer- /debug:full /verbose- /doc:\"C:\\Windows\\Temp\\vs-code-runner.vbnet.xml\" /reference:\"System.dll\",\"System.Core.dll\",\"System.Data.dll\",\"System.Data.DataSetExtensions.dll\",\"System.Deployment.dll\",\"System.DirectoryServices.AccountManagement.dll\",\"System.Drawing.dll\",\"System.Management.dll\",\"System.Net.dll\",\"System.Net.Http.dll\",\"System.Windows.Forms.dll\",\"System.Xml.dll\",\"System.Xml.Linq.dll\" /imports:\"Microsoft.VisualBasic\",\"Microsoft.Win32\",\"Microsoft.Win32.SafeHandles\",\"System\",\"System.Collections\",\"System.Collections.Concurrent\",\"System.Collections.Generic\",\"System.Collections.ObjectModel\",\"System.ComponentModel\",\"System.Data\",\"System.Diagnostics\",\"System.DirectoryServices.AccountManagement\",\"System.Drawing\",\"System.Globalization\",\"System.IO\",\"System.IO.MemoryMappedFiles\",\"System.Linq\",\"System.Linq.Expressions\",\"System.Management\",\"System.Net\",\"System.Reflection\",\"System.Resources\",\"System.Runtime.CompilerServices\",\"System.Runtime.InteropServices\",\"System.Runtime.Serialization\",\"System.Security.AccessControl\",\"System.Security.Permissions\",\"System.Security.Principal\",\"System.Text\",\"System.Text.RegularExpressions\",\"System.Threading\",\"System.Threading.Tasks\",\"System.Web\",\"System.Windows.Forms\",\"System.Xml\",\"System.Xml.Linq\",\"System.Xml.Serialization\" /platform:anycpu /target:exe /out:\"C:\\Windows\\Temp\\vs-code-runner.vbnet.exe\" \"$fileName\" && \"C:\\Windows\\Temp\\vs-code-runner.vbnet.exe\""
  } 

Très bonne journée à tous.

Tous les 4 commentaires

Il est déjà pris en charge : https://github.com/formulahendry/vscode-code-runner#configuration
Accédez à File > Preferences -> User Settings , et ouvrez settings.json, et définissez comme ci-dessous :

{
    "code-runner.executorMapByFileExtension": {
        ".vb": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\vbc.exe\" /nologo $fileName && $fileNameWithoutExt"
    } 
}

Merci beaucoup.

S'il vous plaît, pourriez-vous me confirmer s'il s'agit de la bonne syntaxe et de l'emplacement des paramètres ? :

// Place your settings in this file to overwrite the default settings
{
  // Default vs-code settings goes here...
  // ...

  // Code-runner extension: Compiler settings
  "code-runner.executorMapByFileExtension": { 
        ".cs": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\csc.exe\" /nologo $fileName && $fileNameWithoutExt",
        ".vb": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\vbc.exe\" /nologo $fileName && $fileNameWithoutExt"
  } 
}

Cela devrait être juste.
Pour le fichier cs, si vous avez installé l'extension C#, vous devez définir comme ci-dessous :

{
  "code-runner.executorMap": {
        "csharp": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\csc.exe\" /nologo $fileName && $fileNameWithoutExt"
  },
  "code-runner.executorMapByFileExtension": { 
        ".vb": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\vbc.exe\" /nologo $fileName && $fileNameWithoutExt"
  } 
}

Je voudrais juste partager une configuration qui évite les problèmes avec les noms de fichiers contenant des espaces :

  "code-runner.executorMap": {
        "csharp": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\csc.exe\" /nologo \"$fileName\" && \"$fileNameWithoutExt.exe\""
  },
  "code-runner.executorMapByFileExtension": { 
        ".vb": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\vbc.exe\" /nologo \"$fileName\" && \"$fileNameWithoutExt.exe\""
  } 

En plus de cette configuration ci-dessous, si vous souhaitez avoir une expérience complète de la compilation pour C# et VB.NET, il compile dans le répertoire C:WindowsTemp (pour éviter de générer des fichiers exécutables indésirables) et génère des informations sur le fichier de débogage et un fichier de documentation Xml, il fait également référence à des fichiers très courants et des assemblages importants pour gagner du temps et des maux de tête, et il optimise certains paramètres de débogage du compilateur qui le rendent plus robuste pour la compilation et l'analyse (ce sont les mêmes références et la même configuration d'importation/utilisation que j'utilise dans les fichiers de projet de mon Visual Studio .vbproj/.csproj par défaut):

  "code-runner.executorMap": {
        "csharp": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\csc.exe\" /nologo /preferreduilang:en-US /debug:full /warn:4 /doc:\"C:\\Windows\\Temp\\vs-code-runner.csharp.xml\" /reference:\"System.dll\",\"System.Core.dll\",\"System.Data.dll\",\"System.Data.DataSetExtensions.dll\",\"System.Deployment.dll\",\"System.DirectoryServices.AccountManagement.dll\",\"System.Drawing.dll\",\"System.Management.dll\",\"System.Net.dll\",\"System.Net.Http.dll\",\"System.Windows.Forms.dll\",\"System.Xml.dll\",\"System.Xml.Linq.dll\" /platform:anycpu /target:exe /out:\"C:\\Windows\\Temp\\vs-code-runner.csharp.exe\" \"$fileName\" && \"C:\\Windows\\Temp\\vs-code-runner.csharp.exe\""
  },
  "code-runner.executorMapByFileExtension": { 
        ".vb": "cd $dir && \"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\vbc.exe\" /nologo /vbruntime+ /optionexplicit+ /optionstrict+ /optioninfer- /debug:full /verbose- /doc:\"C:\\Windows\\Temp\\vs-code-runner.vbnet.xml\" /reference:\"System.dll\",\"System.Core.dll\",\"System.Data.dll\",\"System.Data.DataSetExtensions.dll\",\"System.Deployment.dll\",\"System.DirectoryServices.AccountManagement.dll\",\"System.Drawing.dll\",\"System.Management.dll\",\"System.Net.dll\",\"System.Net.Http.dll\",\"System.Windows.Forms.dll\",\"System.Xml.dll\",\"System.Xml.Linq.dll\" /imports:\"Microsoft.VisualBasic\",\"Microsoft.Win32\",\"Microsoft.Win32.SafeHandles\",\"System\",\"System.Collections\",\"System.Collections.Concurrent\",\"System.Collections.Generic\",\"System.Collections.ObjectModel\",\"System.ComponentModel\",\"System.Data\",\"System.Diagnostics\",\"System.DirectoryServices.AccountManagement\",\"System.Drawing\",\"System.Globalization\",\"System.IO\",\"System.IO.MemoryMappedFiles\",\"System.Linq\",\"System.Linq.Expressions\",\"System.Management\",\"System.Net\",\"System.Reflection\",\"System.Resources\",\"System.Runtime.CompilerServices\",\"System.Runtime.InteropServices\",\"System.Runtime.Serialization\",\"System.Security.AccessControl\",\"System.Security.Permissions\",\"System.Security.Principal\",\"System.Text\",\"System.Text.RegularExpressions\",\"System.Threading\",\"System.Threading.Tasks\",\"System.Web\",\"System.Windows.Forms\",\"System.Xml\",\"System.Xml.Linq\",\"System.Xml.Serialization\" /platform:anycpu /target:exe /out:\"C:\\Windows\\Temp\\vs-code-runner.vbnet.exe\" \"$fileName\" && \"C:\\Windows\\Temp\\vs-code-runner.vbnet.exe\""
  } 

Très bonne journée à tous.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Salil03 picture Salil03  ·  5Commentaires

eegod picture eegod  ·  5Commentaires

StayFoolisj picture StayFoolisj  ·  5Commentaires

nmchgx picture nmchgx  ·  3Commentaires

w3adventures picture w3adventures  ·  3Commentaires