我在使用.exe进行进程间通信时遇到意外问题。
它似乎在桌面目录中工作但它失败了,并且在我的项目目录中的代码exitcode中给出了一个奇怪的未设置。
我无法找到问题的根源。 exec被编译为一个文件,其中包含所有库,您可以看到它在桌面目录中工作,但在其他目录中停止。退出时,主程序中会给出同样奇怪的exitcode
var process = new Process
{
StartInfo = {
FileName = @"WF_Mag.exe",
Arguments =
$"\"{Account.Host}\" \"{Account.DbName}\" \"No\" \"{Account.Login}\" \"{Account.Password}\" \"{Account.DateFrom.ToString("yyyy-MM-dd")}\" \"{Account.DateTo.ToString("yyyy-MM-dd")}\" ",
CreateNoWindow = false,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true,
},
EnableRaisingEvents = true
};
process.OutputDataReceived += Process_OutputDataReceived;
process.Exited += (sender, args) =>
{
var proc = sender as Process;
if (proc != null)
{
var sb = new StringBuilder();
var exitCodeFlags = (ExitCodes)proc.ExitCode; // returns -532462766
if (exitCodeFlags.HasFlag(ExitCodes.ArgumentsError))
sb.Append("Błędna liczba argumentow \n");
if (exitCodeFlags.HasFlag(ExitCodes.DateFromError))
sb.Append("Zły format daty początkowej \n");
if (exitCodeFlags.HasFlag(ExitCodes.DateToError))
sb.Append("Zły format daty końcowej \n");
if (exitCodeFlags.HasFlag(ExitCodes.LibraryError))
sb.Append("Błąd wewnętrzny biblotek \n");
if (exitCodeFlags.HasFlag(ExitCodes.WrongConnectionData))
sb.Append("Złe dane połączenia \n");
ip.Report(exitCodeFlags == ExitCodes.Success
? new Tuple<string, int?, bool>("Proces pobierania zakończył sie sukcesem", 100, false)
: new Tuple<string, int?, bool>("Proces pobierania zakończył sie błędnie \n" + sb, 100, true));
}
};
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
我被困了,我正在寻找可能导致问题的一些想法。 我非常感谢任何建议。
提前致谢