下午好。有一个用 C# 编写的文件,例如“app.cs”。您需要通过 C# 中的应用程序编译此文件。如果编译器给出编译错误,那么你需要将输出重定向到一个文本文件。问题是从 C# 执行了一个 PowerShell 脚本,在该脚本中启动了编译器本身。我不太了解 PowerShell,这就是我求助于社区的原因。这是下面的代码:
- PowerShell脚本代码
@"Start-Process -FilePath 'C:\Program Files\MSBuild\12.0\Bin\csc.exe' -ArgumentList 'app.cs' -Wait -NoNewWindow | Out-File -FilePath log.txt"
C#代码
string script = ... // см. выше Runspace runspace = RunspaceFactory.CreateRunspace(); runspace.Open(); Pipeline pipeline = runspace.CreatePipeline(); pipeline.Commands.AddScript(script); Collection<PSObject> result = pipeline.Invoke(); runspace.Close();
ps 结果变量也为空。
谢谢@rdorn。有必要重新定义输出。对 PowerShell 的响应