我是開發人員在horn OSS項目,旨在緩解構建其他OSS項目的痛苦。我們正試圖讓喇叭像經驗一樣成爲紅寶石寶石。喇叭的許多挑戰之一是必須處理所有各種構建引擎,如Nant,powershell,msbuild和rake,這是本文的重點。從.NET窗口服務運行Rake
Horn有2個表現形式,它作爲一個cmd行工具運行,它也作爲一個windows服務運行,它可以建立所有可以從this網站下載的各種包。
某些OSS項目使用rake構建它們的源代碼,這最終使我接觸到了這篇文章。
我無法從Windows服務中運行rake進程,而當從命令行運行時,完全相同的代碼可以毫無問題地啓動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));
}
有沒有人有任何建議,問題是什麼?
沒有雪茄哥們,但謝謝你的回答。 如果您正在查看源代碼,它位於horn.services.sln中,install_package_service.bat將安裝它。我將調試器設置爲在啓動時在適當的位置開啓。 – dagda1 2009-12-04 23:59:19