Код: Выделить всё
public static async Task IsWsl2AvailableAsync()
{
try
{
var psi = new ProcessStartInfo
{
FileName = "wsl.exe",
Arguments = "--status",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
StandardOutputEncoding = Encoding.UTF8,
StandardErrorEncoding = Encoding.UTF8
};
using var process = new Process { StartInfo = psi };
process.Start();
string output = await process.StandardOutput.ReadToEndAsync();
string error = await process.StandardError.ReadToEndAsync();
await process.WaitForExitAsync();
MessageBox.Show($"[stdout]\n{output}\n\n[stderr]\n{error}", "WSL STATUS");
return output.Contains("Default Version: 2", StringComparison.OrdinalIgnoreCase);
}
catch (Exception ex)
{
MessageBox.Show($"Error: {ex.Message}");
return false;
}
}
Код: Выделить всё
[stdout]
S
[stderr]
Подробнее здесь: https://stackoverflow.com/questions/796 ... in-c-sharp