我想讓我的ASP.NET頁面掏出並執行git命令。我把命令的bat文件,其工作原理:如何從ASP.NET頁面中取出shell並執行git命令?
REM cd to the git repo folder
cd c:\temp\mygitrepo
"c:\Program Files\Git\Bin\git.exe" show c090dc4b8b1b3512c1b5363c371e21d810d02f54 -- myfile.txt
如果我從一個命令提示符運行我.bat文件,沒問題。 如果我使用System.Diagnostics.Process.Start運行它,我得到這個錯誤:
RUNTIME_PREFIX請求,但前綴計算失敗。使用靜態後備
錯誤是從這個混帳文件來:http://github.com/git/git/blob/master/exec_cmd.c
我使用完全相同的技術運行svn.exe命令,沒有問題。
編輯1:從thread here我瞭解到,msysgit將某些文件安裝在與當前用戶相關聯的位置,而不是所有用戶。 IIS Web服務器正在另一個用戶帳戶下運行。我嘗試將一些引起我注意的git文件(如.gitconfig)複製到其他用戶(在Documents and Settings中)。沒有運氣。所以,我已經將我的注意力轉向讓IIS在啓動git命令時模擬我。
精神上,我很快就駁回了你的「這是否是一個錯誤......命令仍然應該成功執行」。但這是關鍵。 我的邏輯捕獲stdout和stderr。如果stderr不是空白的,我的邏輯假定命令失敗並且只顯示stderr。正如你懷疑的那樣,stdout確實包含了我期望的輸出,儘管有錯誤。 – 2009-10-12 01:45:51
有時候,它只是需要一些開箱即用的想法。 ;)很高興工作。 – jrista 2009-10-12 05:03:35