0

我使用了以下代码:

static void Main(string[] args)
    {
        ProcessStartInfo perlStartInfo = new ProcessStartInfo(@"C:\strawberry\perl\bin\perl.exe");
        perlStartInfo.Arguments = "c:\\ebm\\parse_ebm_log.pl";
        perlStartInfo.UseShellExecute = false;
        perlStartInfo.RedirectStandardOutput = true;
        perlStartInfo.RedirectStandardError = true;
        perlStartInfo.CreateNoWindow = false;

        Process perl = new Process();
        perl.StartInfo = perlStartInfo;
        perl.Start();
        perl.WaitForExit();
        string output = perl.StandardOutput.ReadToEnd();
    }

现在当我查看 perl.MainModule 时出现此异常: MainModule = 'perl.MainModule' throw an exception of type

'System.ComponentModel.Win32Exception' base {System.SystemException} = {“只有部分 ReadProcessMemory 或 WriteProcessMemory 请求已完成”}

目标构建是 x64,因为之前在同一个 perl.MainModule 中出现异常,当它说不能在 x32 进程上运行 x64 时(类似的东西)

4

1 回答 1

1

尝试在 PATH Enviroment 中添加 perl(之后打开一个新的 Windows shell)以及以下更改

ProcessStartInfo perlStartInfo = new ProcessStartInfo()
perlStartInfo.FileName= "perl.exe"
perlStartInfo.UseShellExecute = true
于 2013-02-27T18:41:05.987 回答