Compilation / exécution d'un fichier source C # dans l'invite de commandes

Réponses:

140

CSC.exe est le compilateur CSharp inclus dans le .NET Framework et peut être utilisé pour compiler à partir de l'invite de commandes. La sortie peut être un exécutable ".exe", si vous utilisez "/ target: exe", ou une DLL; Si vous utilisez / target: library, CSC.exe se trouve dans le répertoire .NET Framework,

par exemple pour .NET 3.5, c:\windows\Microsoft.NET\Framework\v3.5\.

Pour exécuter, tout d'abord, ouvrez une invite de commande, cliquez sur "Démarrer", puis tapez cmd.exe.
Vous devrez peut-être alors CD dans le répertoire qui contient vos fichiers source.

Exécutez le compilateur C # comme ceci:

  c:\windows\Microsoft.NET\Framework\v3.5\bin\csc.exe 
            /t:exe /out:MyApplication.exe MyApplication.cs  ...

(tout sur une seule ligne)

Si vous avez plus d'un module source à compiler, vous pouvez le placer sur la même ligne de commande. Si vous avez d'autres assemblys à référencer, utilisez /r:AssemblyName.dll.

Assurez-vous d'avoir une méthode statique Main () définie dans l'une de vos classes, qui servira de "point d'entrée".

Pour exécuter le fichier EXE résultant, tapez MyApplication, puis <ENTER>utilisez l'invite de commande.

Cet article sur MSDN donne plus de détails sur les options du compilateur de ligne de commande. Vous pouvez incorporer des ressources, définir des icônes, signer des assemblys - tout ce que vous pouvez faire dans Visual Studio.

Si vous avez installé Visual Studio, dans le "menu Démarrer"; sous Visual Studio Tools, vous pouvez ouvrir une «invite de commandes Visual Studio», qui configurera toutes les variables d'environnement et de chemin requises pour la compilation de la ligne de commande.

Bien qu'il soit très pratique de le savoir, vous devez le combiner avec la connaissance d'une sorte d'outil de construction tel que NAnt , MSBuild , FinalBuilder, etc. Ces outils fournissent un environnement de construction complet, pas seulement le compilateur de base.

Sur un Mac

Sur un Mac, la syntaxe est similaire, seul le compilateur C sharp est juste nommé csc:

$ csc /target:exe /out:MyApplication.exe MyApplication.cs ...

Ensuite, pour l'exécuter:

$ mono MyApplication.exe
Cendre
la source
1
si je me souviens bien, vous ne pouvez compiler vers et exe que si vous avez une classe statique avec une méthode Main.
cjk
Le compilateur vous avertit ces jours-ci si vous ne l'avez pas fait, mais bon point, j'ajouterai cela à la réponse, merci.
Ash
5
C'est génial. Nécessaire pour compiler une petite application C # et n'a aucun intérêt à toucher Visual Studio. Merci!
ColinM
1
Dans Win10, j'ai trouvé le mien là-bas:C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
TrakJohnson
17

Une autre façon de compiler des programmes C # (sans utiliser Visual Studio ou sans l'avoir installé) consiste à créer une variable utilisateur dans les variables d'environnement, à savoir "PATH".

Copiez le chemin suivant dans cette variable:

"C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"

ou selon le .NET de votre PC.

Vous n'avez donc pas à mentionner le chemin complet à chaque fois que vous compilez un code. Utilisez simplement

"C: \ Users \ UserName \ Desktop> csc [options] filename.cs"

ou quel que soit le chemin de votre code.

Maintenant, vous êtes prêt à partir.

Aditya Garg
la source
15

Vous pouvez compiler un programme C #:

c:> csc Hello.cs

Vous pouvez exécuter le programme

c:> Bonjour

Surendra
la source
1
Et si j'utilise des bibliothèques supplémentaires? J'obtiens des erreurs que les assemblages ne sont pas trouvés ... Comment résoudre ce problème?
Nikas Žalias
Vous devez d'abord vous assurer que le chemin d'accès au compilateur se trouve dans les variables d'environnement.
Dame Lyngdoh
@ NikasŽalias. Par exemple, csc Hello.cs -langversion: dernière -reference: System.Net.Http.dll
Alex Nolasco
8

Pour la dernière version, ouvrez d'abord une fenêtre Powershell, accédez à n'importe quel dossier (par exemple c:\projects\) et exécutez ce qui suit

# Get nuget.exe command line
wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile nuget.exe

# Download the C# Roslyn compiler (just a few megs, no need to 'install')
.\nuget.exe install Microsoft.Net.Compilers

# Compiler, meet code
.\Microsoft.Net.Compilers.1.3.2\tools\csc.exe .\HelloWorld.cs

# Run it
.\HelloWorld.exe    

Un exemple HelloWorld.cs

using System;

public class HelloWorld {
    public static void Main() 
    {
        Console.WriteLine("Hello world!");
    }
}

Vous pouvez également essayer le nouvel interpréteur C #;)

.\Microsoft.Net.Compilers.1.3.2\tools\csi.exe
> Console.WriteLine("Hello world!");
Hello world!
DeepSpace101
la source
7

Bien que ce soit certainement une bonne chose de savoir comment construire en ligne de commande, pour la plupart des travaux, il peut être plus facile d'utiliser un IDE. L' édition C # express est gratuite et très bonne pour l'argent ;-p

Sinon, des éléments tels que snippy peuvent être utilisés pour exécuter des fragments de code C #.

Enfin, notez que la ligne de commande est spécifique à l'implémentation; pour MS, c'est csc; pour mono , c'est gmcset amis .... De même, pour exécuter: c'est juste "exename" pour la version MS, mais typiquement "mono exename" pour mono.

Enfin, de nombreux projets sont construits avec des outils de script de construction; MSBuild , NAnt , etc.

Marc Gravell
la source
3
J'utilise l'IDE. Mais j'avais besoin de savoir. Cela ne semble pas juste de ne pas savoir! Merci beaucoup pour ta réponse.
DragonBorn le
1
+1 pour NAnt! LINQPad est très bon pour expérimenter des fragments de code: linqpad.net
TrueWill
6

Voici comment installer MSBuild avec un compilateur C # 7.0 autonome qui n'est plus intégré dans le dernier .Net Framework 4.7:

Est-il possible d'installer un compilateur C # sans Visual Studio?

Alors viens de courir

"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn\csc.exe" MyApplication.cs

pour compiler un fichier source unique en exécutable.

Notez également que .Net Core ne prend pas en charge la compilation de fichier source unique sans projet préconfiguré.

Vadzim
la source
5

LinqPad est un moyen rapide de tester du code C #, et c'est gratuit.

nullsteph
la source
2

Vous pouvez créer vos fichiers de classe dans l'invite de commande VS (afin que toutes les variables d'environnement requises soient chargées), et non dans la fenêtre de commande Windows par défaut.

Pour en savoir plus sur la création de ligne de commande avec csc.exe (le compilateur), consultez cet article .

Cerebrus
la source
2

Si vous avez installé Visual Studio, vous disposez d'une invite de commande développeur pour VS. Vous pouvez facilement créer votre programme à l'aide de la csccommande et exécuter votre application avec le nom de l'application dans l'invite de commande du développeur.

Vous pouvez ouvrir l'invite de commande Developer comme indiqué ci-dessous.

Démarrer => Invite de commandes du développeur pour VS

J'espère que cela t'aides!

hackerbuddy
la source
2

Ajouter au chemin

C:\Windows\Microsoft.NET\Framework\v3.5

Compiler:

csc file.cs

Éxécuter:

file
Rafiul Islam
la source
1

Une fois que vous écrivez le code c # et enregistrez-le. Vous pouvez utiliser l'invite de commande pour l'exécuter comme l'autre code.

Dans l'invite de commande, vous entrez le répertoire dans lequel se trouve votre fichier et tapez

Compiler:

mcs yourfilename.cs

Éxécuter:

mono yourfilename.exe 

si vous voulez que votre fichier .exe soit différent avec un nom différent, tapez

Compiler:

mcs yourfilename.cs -out:anyname.exe 

Éxécuter:

mono anyname.exe 

Cela devrait aider!

Joe
la source
1

Dans les systèmes Windows, utilisez la commande csc <filname>.csdans l'invite de commande lorsque le répertoire actuel est dans Microsoft Visual Studio \ <Year> \ <Version>

Il y a deux manières:

À l'aide de l'invite de commande:

  1. Démarrer -> Invite de commandes
  2. Remplacez le répertoire par le dossier Visual Studio à l'aide de la commande: cd C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ <Version>
  3. Utilisez la commande: csc /.cs

Utilisation de l'invite de commande du développeur:

  1. Démarrer -> Invite de commandes du développeur pour VS 2017 (ici, le répertoire est déjà défini sur le dossier Visual Studio)

  2. Utilisez la commande: csc /.cs

J'espère que ça aide!

user3789482
la source
0

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn

c'est ici que vous pouvez trouver le compilateur c # qui prend en charge c # 7 sinon il utilisera les compilateurs .net 4 qui ne prend en charge que c # 5

Mohamed Fathallah
la source
0

J'ai écrit un fichier batch CompileCS.cmdqui permet de compiler (et éventuellement d'exécuter) un fichier C #, vous pouvez trouver la réponse complète y compris le programme batch 'CompileCS' ici .

Son utilisation est simple:

CompileCS /run GetDotNetVersion.cs[arg1] ... [arg9]

compilera et exécutera GetDotNetVersion.cs - si vous voulez simplement le compiler, omettez le /runparamètre.

L'application console GetDotNetVersion.csest tirée de cette réponse .

Mat
la source