Я разработчик проекта OSS horn, целью которого является облегчить создание других ОСС проектов. Мы пытаемся превратить рог в рубиновый драгоценный камень, подобный опыту. Одной из многих проблем horn является необходимость иметь дело со всеми различными механизмами сборки, такими как Nant, powershell, msbuild и rake, о чем и идет речь в этом посте.
У Horn есть 2 варианта исполнения: он работает как инструмент командной строки, а также работает как служба Windows, где он создает все различные пакеты, которые можно загрузить с этот веб-сайт.
Некоторые проекты OSS используют rake для создания своего исходного кода, что в конечном итоге привело меня к теме этого поста.
Я не могу запустить процесс rake из службы Windows, в то время как точно такой же код может запускать процесс rake без каких-либо проблем при запуске из командной строки. Причина, по которой rake запускается из инструмента строки cmd, может заключаться в том, что он связан с окном, хотя я не могу правильно сказать. Исключение не выдается, но процесс просто не запускается.
Самое смешное, что любой другой .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));
}
Есть ли у кого-нибудь предложения, в чем проблема?