web-dev-qa-db-fra.com

Compiler/Exécuter un fichier source C # dans une invite de commande

Comment compiler et exécuter un fichier .cs à partir d'une fenêtre d'invite de commande?

120
DragonBorn

CSC.exe est le compilateur CSharp inclus dans le .NET Framework et peut être utilisé pour compiler à partir de la commande Invite. La sortie peut être un fichier exécutable (.exe) si vous utilisez/target: exe ou un 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 l'exécuter, ouvrez d'abord une invite de commande (cliquez sur Démarrer ... puis tapez cmd.exe). Vous devrez alors peut-être vous connecter au 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 plusieurs modules 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 de disposer d’une méthode statique Main () définie dans l’une de vos classes pour agir en tant que "point d’entrée".

Pour exécuter le fichier EXE résultant, tapez simplement MyApplication suivi de <ENTER> dans la commande Invite. 

Cet article sur MSDN décrit plus en détail les options du compilateur en ligne de commande. Vous pouvez intégrer des ressources, définir des icônes, signer des assemblages - tout ce que vous pouvez faire dans Visual Studio. 

Si Visual Studio est installé, dans le menu Démarrer (sous Visual Studio Tools), vous pouvez ouvrir une "invite de commande Visual Studio" qui configurera toutes les variables d'environnement et de chemin d'accès requises pour la compilation en ligne de commande.

Bien qu'il soit très pratique de le savoir, vous devez le combiner à la connaissance d'un outil de compilation tel que NAnt , MSBuild , FinalBuilder etc. pas seulement le compilateur de base.

Sur un Mac

Sur un Mac, la syntaxe est similaire, seul le compilateur Sharp est simplement nommé csc:

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

Puis pour le lancer:

$ mono MyApplication.exe
115
Ash

Vous pouvez compiler un programme C #:

c:> csc Hello.cs

Vous pouvez exécuter le programme

c:> Bonjour

12
Surendra

Un autre moyen de compiler des programmes C # (sans utiliser Visual Studio ou sans l'avoir installé) Consiste à créer une variable utilisateur dans des 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.

Ainsi, vous n’avez pas à mentionner le chemin complet à chaque fois que vous compilez un code .

"C:\Utilisateurs\Nom d'utilisateur\Bureau> csc [options] nomfichier.cs"

ou où que se trouve le chemin de votre code.

Maintenant vous êtes prêt à partir.

10
Aditya Garg

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

Alternativement, des choses comme snippy peuvent être utilisées pour exécuter des fragments de code C #.

Enfin - notez que la ligne de commande est spécifique à l'implémentation; pour MS, il est csc ; pour mono , il s'agit de gmcs et d'amis .... De même, pour exécuter: il s'agit simplement de "exename" pour la version MS, mais généralement de "mono exename" pour mono.

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

7
Marc Gravell

LinqPad est un moyen rapide de tester du code C # gratuit.

2
nullsteph

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), mais pas dans la fenêtre de commande Windows par défaut.

Pour en savoir plus sur la génération de ligne de commande avec csc.exe (le compilateur), voir cet article .

2
Cerebrus

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 la commande

# 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!
2
DeepSpace101

Une fois que vous écrivez le code c # et enregistrez-le. Vous pouvez utiliser la commande Invite pour l'exécuter de la même manière que 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!

1
Joe

Sous Windows, utilisez la commande csc <filname>.cs dans l'invite de commande lorsque le répertoire actuel est dans Microsoft Visual Studio\<Année>\<Version>. 

Il y a deux manières:

Utilisation de l'invite de commande:

  1. Démarrer -> Invite de commandes
  2. Modifiez le répertoire dans le dossier Visual Studio à l’aide de la commande suivante: cd:\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 .__ (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!

0
user3789482