Я пытаюсь включить dotnet 3.5 для зависимости для другого устанавливаемого приложения. Проблема в том, что моя оболочка cmd, которую я использую, выдает эту ошибку "dism" не распознается как внутренняя или внешняя команда,
работающая программа или командный файл. "но если я скопирую и вставлю строку, которую я передаю в оболочку cmd:
Dism /online /LogPath:C:\Users\HollyPlyler\source\repos\installerOptimized\installerOptimized\bin\Debug\\Logs\DSIMEnableDotNet.log /LogLevel:4 /Enable-Feature /FeatureName:NetFx3
Работает нормально.
Вот мой класс CMD:
class CommandLineTool
{
public async Task Com(String command, string logName)
{
Console.WriteLine("received " + command);
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = false;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "CMD.exe";
startInfo.Arguments = "/c " + command;
process.StartInfo = startInfo;
Task t = Task.Run(()=>process.Start());
t.Wait();
string output = process.StandardOutput.ReadToEnd();
Console.BackgroundColor = ConsoleColor.Black;
if (output.Contains("0/1"))
{
Console.ForegroundColor = ConsoleColor.Yellow;
installerOptimized.install.success = false;
}
else
{
Console.ForegroundColor = ConsoleColor.Green;
installerOptimized.install.success = true;
}
Console.WriteLine(output);
string success = installerOptimized.install.success ? "successful" : "unsuccessful";
System.IO.File.WriteAllLines("Logs/" + logName +"_" + success + ".txt", output.Split('\n'));
process.WaitForExit();
}
}