Я являюсь разработчиком проекта OSS horn , цель которого - облегчить создание других проектов OSS. Мы пытаемся сделать из рога рубиновые камни, как опыт Одна из многих проблем horn - это работа со всеми различными движками сборки, такими как Nant, powershell, msbuild и rake, о чем и пойдет речь в этом посте.
У Horn есть 2 проявления, он работает как инструмент строки cmd, а также как служба Windows, где он собирает все различные пакеты, которые можно загрузить с этого веб-сайта.
Некоторые проекты OSS используют rake для создания своего исходного кода, что в итоге привело меня к сути этого поста.
Я не могу запустить процесс rake из службы Windows, в то время как точно такой же код может запустить процесс rake без проблем при запуске из командной строки. Причина, по которой rake запускается из инструмента cmd line, может заключаться в том, что он связан с окном, хотя я не могу сказать правильно. Не выдается никаких исключений, но процесс просто не запускается.
Самое смешное, что все остальные .exe работают нормально, и проблема заключается только в рейке.
Вот код для запуска, который создает процесс:
public IProcess GetProcess(string pathToBuildTool, string cmdLineArguments, string workingDirectoryPath)
{
var psi = new ProcessStartInfo(pathToBuildTool, cmdLineArguments)
{
UseShellExecute = false,
RedirectStandardOutput = true,
WorkingDirectory = workingDirectoryPath,
Arguments = cmdLineArguments
};
return new DiagnosticsProcess(Process.Start(psi));
}
У кого-нибудь есть какие-либо предложения относительно проблемы?