Я пишу приложение командной строки в VB.NET.Это приложение вызывает другой файл msxsl.exe для запуска XSL-преобразования.Я использую класс Process для этого:
Dim process = New Process()
process.StartInfo.FileName = "msxsl.exe"
process.StartInfo.Arguments = "base.xml test.xsl -o styled.xml"
process.StartInfo.UseShellExecute = False
process.StartInfo.CreateNoWindow = True
process.StartInfo.RedirectStandardOutput = True
process.Start()
Эта часть прекрасно работает.Что бы я хотел, чтобы он мог отображать вывод этого процесса на консоль моего приложения.Я прочитал несколько постов, объясняющих этот метод, но в этом случае он не работает.На выходе получается пустая строка.
Dim output As String = process.StandardOutput.ReadToEnd()
process.WaitForExit()
Console.WriteLine(output)
Я проверил, что если я запускаю исполняемый файл msxsl самостоятельно (т. Е. Запускаю "msxsl.exe base.xml test.xsl -o styled.xml"), он отображает вывод в командной строке,Что я делаю не так?
РЕДАКТИРОВАТЬ: я должен отметить, что процесс msxsl в настоящее время терпит неудачу из-за неправильно сформированного файла XML.Отображается это сообщение об ошибке:
Произошла ошибка при выполнении таблицы стилей 'test.xsl'.Код: 0x800c0006Система не может найти указанный объект.
Это именно тот тип вещей, который я хочу отобразить в консоли моего приложения (или, в конечном итоге, в файле журнала).