Jag har ett program som beter sig olika om jag kör det innifrån Visual Studio, eller om jag kör exe-filen. Jag anropar programmet ftp för att skicka en fil, och när jag kör mitt program som exe-fil så ger knappt ftp-programmet ifrån sig någon utdata alls. Filen skickas, men jag får ingen begräftelse alls ifrån ftp-programmet att den gjorde det.Ingen utdata i stdout
Så här ser utdatat ut när jag kör mitt program innifrån Visual Studio:
-----
ftp> Connected to photo.guffa.com.
open photo.guffa.com
220 Microsoft FTP Service
User (photo.guffa.comnone)):
331 Password required for guffa.
230 User guffa logged in.
ftp> cd UnusedPhotos/large
250 CWD command successful.
ftp> put G:\TRIPPER\large\991-11895.jpg
200 PORT command successful.
150 Opening ASCII mode data connection for 991-11895.jpg.
226 Transfer complete.
ftp: 257154 bytes sent in 0,25Seconds 1028,62Kbytes/sec.
ftp> ftp> close
quit
-----
Så här ser det ut när jag kör exe-filen:
----
User (photo.guffa.comnone)): open photo.guffa.com
cd UnusedPhotos/large
put G:\TRIPPER\large\991-11895.jpg
close
quit
-----
Jag har skrivit koden utifrån dokumentationen i MSDN, sedan har jag även kollat i den här artikeln:
http://www.c-sharpcorner.com/References/System.Diagnostic.Process.asp
Det ser inte ut som om jag har glömt något i min kod.
Så här ser den del av koden ut som anropar ftp-programmet. Strängen tempName innehåller den fulla sökvägen till en textfil med kommandon för ftp-programmet.info = new ProcessStartInfo("ftp", "-s:\"" + tempName + "\"");
info.UseShellExecute = false;
info.RedirectStandardOutput = true;
info.RedirectStandardError = true;
info.CreateNoWindow = true;
process = Process.Start(info);
output = process.StandardOutput.ReadToEnd();
error = process.StandardError.ReadToEnd();
process.Dispose();
Jag skriver ut värdena i både output och error, så jag ser att det inte kommer några felmeddelanden från ftp-programmet heller.
Någon som har en aning om varför det bara fungerar när jag kör programmet innifrån Visual Studio?