Génération à partir de la ligne de commande avec csc.exe

Vous pouvez appeler le compilateur C# en tapant le nom de son fichier exécutable (csc.exe) en ligne de commande.

Si vous utilisez la fenêtre Invite de commandes de Visual Studio, toutes les variables d'environnement nécessaires sont définies pour vous. Dans Windows 7, vous pouvez accéder à cette fenêtre du menu Démarrer en ouvrant le dossier Microsoft Visual Studio Version\ Visual Studio Tools. Dans Windows 8, l'invite de commandes Visual Studio est appelée Invite de commandes développeur pour VS2012, et vous la trouverez à partir de l'écran de démarrage.

Si vous utilisez une fenêtre d'invite de commandes standard, vous devez configurer votre chemin avant de pouvoir appeler csc.exe à partir de n'importe quel sous-répertoire de votre ordinateur. Vous devez également exécuter vsvars32.bat pour définir les variables d'environnement appropriées pour prendre en charge les builds en ligne de commande. Pour plus d'informations sur vsvars32.bat, y compris les instructions de recherche et d'exécution, consultez Procédure : définition des variables d'environnement pour la ligne de commande Visual Studio.

Si vous utilisez un ordinateur qui ne dispose que de Kit de développement logiciel Windows, vous pouvez utiliser le compilateur C# dans l'invite de commandes du Kit de développement logiciel (SDK), disponible à partir de l'option de menu Kit de développement Microsoft .NET Framework SDK.

Vous pouvez également utiliser MSBuild pour générer vos programmes en C# par programmation. Pour plus d'informations, consultez MSBuild.

Le fichier exécutable csc.exe se trouve généralement dans le dossier Microsoft.NET\Framework\Version, sous le répertoire système Windows. Son emplacement peut varier en fonction de la configuration exacte de l'ordinateur utilisé. Si plusieurs versions du .NET Framework sont installées sur votre ordinateur, vous trouverez plusieurs versions de ce fichier. Pour plus d'informations sur ces installations, consultez Détermination de la version installée du .NET Framework.

Conseil

Lorsque vous générez un projet à l'aide de l'IDE de Visual Studio, vous pouvez introduire la commande csc et ses options de compilation associées dans la fenêtre Sortie.Pour afficher ces informations, suivez les instructions dans Comment : afficher, enregistrer et configurer des fichiers journaux de génération pour changer le niveau de détail des données du journal en Normal ou Détaillé.Après avoir régénéré votre projet, recherchez la fenêtre Sortie pourcsc pour rechercher l'appel du compilateur C#.

Dans cette rubrique

  • Règles de syntaxe pour la ligne de commande

  • Exemples de lignes de commande

  • Différences entre les résultats de la compilation C# et ceux de la compilation C++

Règles de syntaxe de ligne de commande pour le compilateur C#

Le compilateur C# utilise les règles suivantes lorsqu'il interprète les arguments spécifiés dans la ligne de commande du système d'exploitation :

  • Les arguments sont délimités par un espace blanc, qui peut être un espace ou une tabulation.

  • Le signe insertion (^) n'est pas reconnu comme caractère d'échappement ni comme délimiteur. Ce caractère est traité par l'analyseur de ligne de commande du système d'exploitation avant d'être passé au tableau argv du programme.

  • Une chaîne placée entre guillemets doubles ("chaîne") est interprétée comme un argument unique, peu importe les espaces blancs inclus. Une chaîne entre guillemets peut être incorporée dans un argument.

  • Un guillemet double précédé d'une barre oblique inverse (\") est interprété comme un caractère guillemet double littéral (").

  • Les barres obliques inverses sont interprétées littéralement, sauf si elles précèdent immédiatement un guillemet double.

  • Si un nombre pair de barres obliques inverses est suivi d'un guillemet double, une barre oblique inverse est placée dans le tableau argv pour chaque paire de barres obliques inverses et le guillemet double est interprété comme un délimiteur de chaîne.

  • Si un nombre impair de barres obliques inverses est suivi d'un guillemet double, une barre oblique inverse est placée dans le tableau argv pour chaque paire de barres obliques inverses et le guillemet double est « ignoré » à cause de la barre oblique inverse restante. Cela entraîne l'ajout d'un guillemet double littéral (") dans le tableau argv.

Exemples de lignes de commande pour le compilateur C#

  • Compile File.cs pour produire File.exe :

    csc File.cs 
    
  • Compile File.cs pour produire File.dll :

    csc /target:library File.cs
    
  • Compile File.cs pour créer My.exe :

    csc /out:My.exe File.cs
    
  • Compile les fichiers C# dans le répertoire actif avec les optimisations activées et définit le symbole DEBUG. Le fichier de sortie est File2.exe :

    csc /define:DEBUG /optimize /out:File2.exe *.cs
    
  • Compile tous les fichiers C# du répertoire actif pour produire une version debug de File2.dll. Aucun logo ni aucun avertissement ne sont affichés :

    csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
    
  • Compile tous les fichiers C# du répertoire actif vers Something.xyz (une DLL) :

    csc /target:library /out:Something.xyz *.cs
    

Différences entre les résultats de la compilation C# et ceux de la compilation C++

Aucun fichier objet (.obj) n'est créé par l'appel du compilateur C# ; les fichiers de sortie sont créés directement. Le compilateur C# n'a donc pas besoin d'un éditeur de liens.

Voir aussi

Tâches

Comment : afficher les arguments de ligne de commande (Guide de programmation C#)

Comment : accéder à des arguments de ligne de commande à l'aide de foreach (Guide de programmation C#)

Référence

Options du compilateur C# par ordre alphabétique

Options du compilateur C# par catégorie

Arguments de ligne de commande (Guide de programmation C#)

Valeurs de retour Main() (Guide de programmation C#)

Concepts

Main() et arguments de ligne de commande (Guide de programmation C#)

Autres ressources

Options du compilateur C#