2009-01-26 13 views
4

Je suis en train de développer un simple éditeur C# pour l'un de mes cours universitaires et je dois envoyer un fichier .cs au compilateur et collecter les erreurs (si elles existent) et les afficher dans mon application. En d'autres termes, je veux ajouter un compilateur C# à mon éditeur. Y a-t-il quelque chose comme ça pour le débogueur?Accès aux erreurs et avertissements du compilateur

Répondre

8

Si vous utilisez le CodeDomProvider

using System.CodeDom; 
using System.CodeDom.Compiler; 
using Microsoft.CSharp; 

// the compilation part 

// change the parameters as you see fit 
CompilerParameters cp = CreateCompilerParameters(); 
var options = new System.Collections.Generic.Dictionary<string, string>(); 
if (/* you want to use the 3.5 compiler*/) 
{ 
    options.Add("CompilerVersion", "v3.5"); 
} 
var compiler = new CSharpCodeProvider(options); 
CompilerResults cr = compiler.CompileAssemblyFromFile(cp,filename); 
if (cr.Errors.HasErrors) 
{ 
    foreach (CompilerError err in cr.Errors) 
    { 
     // do something with the error/warning 
    } 
} 
1

Utilisez la classe System.Diagnostics.Process pour démarrer un processus générique et collecter les E/S à partir de l'entrée/sortie standard.

Pour ce scénario spécifique, je vous suggère de regarder Microsoft.CSharp.CSharpCodeProvider classe. Ça va faire la tâche pour vous.

Questions connexes