2010-07-23 5 views
15

Dans VC++, je peux appuyer sur CTRL + F7 pour compiler un seul fichier, ou faire un clic droit sur un fichier source pour le compiler. Est-il possible de compiler un seul fichier (ou un fichier actuel) en C#?Comment compiler un seul fichier dans C#?

Je voudrais par exemple savoir si mon fichier actuel contient des erreurs sans avoir à tout compiler.

+0

Le compilateur C# est * incroyablement * rapide lors de la compilation d'un seul assemblage, même avec une quantité importante de code. Êtes-vous sûr d'être bloqué par cela? –

Répondre

6

Non, il n'est pas possible de le faire en C#.

Contrairement à C++, un fichier C# ne peut pas être raisonnablement compilé par lui-même pour déterminer s'il a des erreurs. C++ atteint cet objectif grâce aux instructions #include qui permettent à un fichier .cpp de comprendre la déclaration des types disponibles. Ces déclarations définissent la structure des types dont dépend le fichier courant et permettent au compilateur de s'assurer qu'ils sont utilisés conformément aux spécifications.

Ce processus est géré implicitement en C#. L'ensemble des déclarations disponibles est simplement l'ensemble de toutes les déclarations dans tous les fichiers compilés qui sont autrement accessibles. Il n'y a aucun moyen d'envoyer des dépendances de déclaration de la manière de C++ et donc aucun moyen de s'assurer qu'elles sont utilisées correctement dans un seul fichier.

+0

Ne pourrait-il pas, en théorie, analyser tout ce dont il a besoin et ignorer toutes les erreurs, sauf celles des types utilisés dans mon fichier source actuel? Donc, il ne signale que ceux nécessaires. – Winforms

+0

@Winforms, pourquoi ne pas simplement compiler et trier la liste des erreurs par nom de fichier et faire défiler jusqu'au fichier en question? – JaredPar

+2

Je suppose, quand je suis en train de refactoriser un gros morceau de code, mais j'aimerais voir seulement les erreurs pour ce fichier, mais je vois ce que vous voulez dire. Juste un de mes ennuis depuis le déplacement à C# – Winforms

3

Un outil complémentaire Visual Studio comme ReSharper est un très bon investissement pour cette situation. ReSharper effectue une analyse de code à l'échelle de la solution en arrière-plan et affiche les problèmes en affichant une barre à côté de la barre de défilement du fichier de code qui comporte des lignes rouges indiquant les lignes de code qui ont des erreurs. Les lignes affichées sont cliquable pour accéder à la ligne en question et aussi infobulles détaillant le problème exact est:

http://www.jetbrains.com/resharper/features/code_analysis.html#Continuous_Code_Quality_Analysis

 
      http://www.jetbrains.com/resharper/features/screenshots/50/marker_bar.png 

Les problèmes \ avertissements que ReSharper peut vérifier sont configurables (mais il a une excellente configuration out-of-the-box), et peut dénoter n'importe quoi à partir d'erreurs qui amèneraient le code à ne pas compiler à des problèmes plus subtils où il a détecté un résultat possible d'appel de méthode null qui n'a pas été explicitement vérifié .

0

Shift-F6 compilera l'assemblage actuel, qui est presque ce que vous voulez.

+0

Quelle version de VS est-ce? J'ai essayé Shift + F6 et rien ne s'est passé. –

+0

C'était probablement 2008 étant donné qu'il a été affiché en 2010. –

1

En ligne de commande: % windir% \ Microsoft.Net \ Framework \ V3.5 \ csc.exe/target: bibliothèque File.cs

Vous pouvez raisonnablement le joindre à la solution des explorateurs menu contextuel par Outils -> Outils externes

fixent les arguments/target: $ bibliothèque (ItemPath)

quelque chose comme ça pourrait faire ce que vous voulez. Bien que le fichier ne doive dépendre d'aucun autre fichier dans le projet ou dans les binaires référencés en dehors de ce qui est dans le GAC.

10

Pour compiler le fichier .cs unique + run:

  1. Dans VS 2008, allez dans "Outils"> "Outils externes"
  2. Cliquez sur "Ajouter"
  3. Titre: Run CSC (ou ce que vous voulez)
  4. Commande: C: \ Windows \ system32 \ cmd.exe
  5. Arguments:/c C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ csc.exe/target: winexe $ (ItemPath) & & $ (ItemFileName)
  6. répertoire initial: $ (ItemDir)
  7. Cochez la case Utiliser la fenêtre de sortie
  8. Appliquer + Ok
  9. Allez dans Outils et choisissez "Run CSC"

Si cela ne fonctionne pas, vérifiez que vos chemins de correspondance cmd et csc.

+0

Excellent travail. En outre, si vous utilisez Visual Studio 2010, remplacez ** v3.5 ** par ** v4.0.30319 ** à l'étape 5. –

0

Oui, c'est possible. Vous pouvez appeler le compilateur directement à l'aide de l'invite de commande. à savoir

  1. Créer un fichier unique
  2. Ouvrez la commande Visual Studio 'Hello.cs invite de
  3. Naviguez jusqu'au répertoire qui a' Hello.cs de
  4. RUN csc hello.cs
  5. Exécuter votre seul fichier en tapant hello.exe

Cela vous indiquera au moins si un fichier unique est compilé ou non. Vous pouvez trouver plus d'informations ici: https://msdn.microsoft.com/en-us/library/78f4aasd.aspx

Questions connexes