Добрый день. Имеется файл написанный на C#, например 'app.cs'. Необходимо скомпилировать этот файл через приложение в C#. Если компилятор выдаст выдаст ошибки компиляции, то необходимо перенаправить вывод в текстовый файл. Проблема такова, что из C# выполняется скрипт 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();
p.s. Переменная result так же пустая.
Спасибо @rdorn. Необходимо было переопределить вывод. Ответ на PowerShell
$objectStartInfo = New-Object System.Diagnostics.ProcessStartInfo -Property @{
"FileName" = "C:\Program Files\MSBuild\12.0\Bin\csc.exe"
"Arguments" = "p1.cs"
"UseShellExecute" = $false
"RedirectStandardOutput" = $true
}
$processObject = New-Object System.Diagnostics.Process
$processObject.StartInfo = $objectStartInfo
Register-ObjectEvent -InputObject $processObject -EventName OutputDataReceived -action{
$Event.SourceEventArgs.Data >> log.txt
}
$processObject.Start()
$processObject.BeginOutputReadLine()
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть сущности, получаемые вне контекстаИх нужно обновить в бд (если есть изменения)
Каким образом можно удалить элемент списка, зная лишь его значениеНапример,
Выдает ошибку "данный ключ отсутствует в словаре" при нажатии на Q,W
Возможно ли разработать приложение, которое предложит поля для загрузки собственных спрайтов пользователю? При загрузке спрайтов, они "привязываются"...