Неправильная powershell/cmd команда
Файл не компилируется когда делаю через ide. Но когда я вручную открываю powershell и пишу команду(из Arguments), то все отлично срабатывает.
public void CreateTest(string filePath, int a, int b)
{
var pc = new Process
{
StartInfo =
{
Verb = "runas",
Arguments = $"dotnet \"C:\\Program Files\\dotnet\\sdk\\6.0.300\\Roslyn\\bincore\\csc.dll\" -r:\"C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App\\6.0.5\\System.Private.CoreLib.dll\" -r:\"C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App\\6.0.5\\System.Console.dll\" -r:\"C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App\\6.0.5\\System.Runtime.dll\" -r:\"C:\\Program Files\\dotnet\\shared\\Microsoft.NETCore.App\\6.0.5\\System.Runtime.InteropServices.RuntimeInformation.dll\" {filePath}.cs",
FileName = "powershell",
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true
}
};
pc.Start();
string stdoutx = pc.StandardOutput.ReadToEnd();
string stderrx = pc.StandardError.ReadToEnd();
pc.WaitForExit();
Console.WriteLine("Exit code : {0}", pc.ExitCode);
Console.WriteLine("Stdout : {0}", stdoutx);
Console.WriteLine("Stderr : {0}", stderrx);
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Вероятно, нужно эскейпить строку дважды, но зачем вам здесь вообще PowerShell? Если с запуском обычный cmd справится? Да даже если в лоб запустить dotnet - тоже прокатит.
Verb = "runas",
Arguments = $@"""C:\Program Files\dotnet\sdk\6.0.300\Roslyn\bincore\csc.dll"" -r:""C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.5\System.Private.CoreLib.dll"" -r:""C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.5\System.Console.dll"" -r:""C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.5\System.Runtime.dll"" -r:""C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.5\System.Runtime.InteropServices.RuntimeInformation.dll"" ""{filePath}.cs""",
FileName = "dotnet",
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true
