Compilateur c# intégré. [Résolu]

Signaler
Messages postés
60
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
16 avril 2006
-
Messages postés
60
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
16 avril 2006
-
Pour mon programme j'utilise System.Diagnostics.Process.Start() pour éxécuter la console c# avec les paramètres appropriés (ex: csc /out:"C:\C#Text\Test.exe" /target:winexe "C:\C#Text\test.cs" "C:\C#Text\AssemblyInfo.cs" /r:"C:\C#Text\functions.dll","C:\C#Text\shell.dll" /optimize+ /unsafe-)

Je voudrais récupérer les messages d'erreur qui apparaissent, mais c'est la le probleme...

J'ai déjà essayé les fonctions intégrées à .net, mais là il faudrait référencer aussi System.windows.forms.dll, etc. car ce n'est pas automatisé.

S'il vous plait si quelqu'un connait la réponse, pourrait on m'aider?

---------------------------------
Ceci n'est pas vraiment utile mais voilà le code de l'application:
void Button7Click(object sender, System.EventArgs e)
{
string[] Ctypes = new string[]{"winexe","exe","library"};
string[] bools = new string[]{"+","-"};
string cstr="";
if (this.CompName.Text != "")
cstr+="/out:""+this.CompName.Text+"" ";
cstr+="/target:"+Ctypes[this.CompType.SelectedIndex]+" ";
string tmpfile="";
foreach (object x in Files.Items)
{
if (tmpfile=="")
tmpfile+="""+(string)x+""";
else
tmpfile+=" ""+(string)x+""";
}
cstr+=tmpfile+" ";
if (this.WinIcon.Text != "")
cstr+="/win32icon:""+this.WinIcon.Text+"" ";
if (this.References.Text != "")
cstr+="/r:"+this.References.Text+" ";
cstr+="/optimize"+bools[CodeOpt.SelectedIndex]+" /unsafe"+bools[UnsafeCode.SelectedIndex];
System.Diagnostics.Process pc = System.Diagnostics.Process.Start(@"C:\windows\Microsoft.Net\Framework\v1.1.4322\csc.exe",cstr);

}
--------------------------------Ça fonctionne

2 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Salut,

Pour compiler avec CSC y'a la classe Compiler, en .NET 2.0 elle est obsolète faut utiliser CSharpCodeProvider, c'est pas aussi simple.

Utilises ProcessStartInfo.RedirectStandardOutput pour récupéré la sortie d'un programme en ligne de commande.
Messages postés
60
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
16 avril 2006

Merci bcp pour ça, :) c'est apprécié. J'espère que ca va fonctionner bcp votre site