Frage

Ich werde eine asp.net-Anwendung in meinem benutzerdefinierten C#-Formular vorkompilieren.Wie rufe ich die Prozessprotokolle ab und überprüfe, ob es sich um einen erfolgreichen Prozess handelt oder nicht?

Hier ist mein Code

string msPath = "c:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\";
string msCompiler = "aspnet_compiler.exe";
string fullCompilerPath = Path.Combine(msPath, msCompiler);
msPath.ThrowIfDirectoryMissing();
fullCompilerPath.ThrowIfFileIsMissing();

ProcessStartInfo process = new ProcessStartInfo 
{ 
    CreateNoWindow = false,
    UseShellExecute = false,
    WorkingDirectory = msPath,
    FileName = msCompiler,
    Arguments = "-p {0} -v / {1}"
        .StrFormat(
            CurrentSetting.CodeSource,
            CurrentSetting.CompileTarget)
};

Process.Start(process);

Danke!

War es hilfreich?

Lösung

Setze deine ProcessStartInfo.RedirectStandardOutput Zu true - Dadurch wird die gesamte Ausgabe umgeleitet Process.StandardOutput, Dies ist ein Stream, den Sie lesen können, um alle Ausgabenachrichten zu finden:

ProcessStartInfo process = new ProcessStartInfo 
{ 
   CreateNoWindow = false,
   UseShellExecute = false,
   WorkingDirectory = msPath,
   RedirectStandardOutput = true,
   FileName = msCompiler,
   Arguments = "-p {0} -v / {1}"
            .StrFormat(
              CurrentSetting.CodeSource, 
              CurrentSetting.CompileTarget)
};

Process p = Process.Start(process);
string output = p.StandardOutput.ReadToEnd();

Sie können auch die verwenden OutputDataReceived Ereignis auf ähnliche Weise wie das, was @Bharath K in seiner Antwort beschreibt.

Es gibt ähnliche Eigenschaften/Ereignisse für StandardError - Sie müssen einstellen RedirectStandardError Zu true sowie.

Andere Tipps

In Ihrem Quellanwendungsregister für das ErrordrorteCeiche Event:

generasacodicetagpre.

Jeder Fehler, der in der Zielanwendung geworfen wurde, kann Daten in diese schreiben.So etwas wie folgt:

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top