這看起來有點瘋狂,但如果你能告訴我更好的方法,請做。 我需要一個webservice來顯示當前版本的mercurial修訂號。從webservice調用批處理文件以寫入文本文件
我有寫這個數字到一個文本文件
cd C:\inetpub\wwwroot\MyWebsite
hg identify --num > services\version.txt
和應該調用批處理文件,然後讀取文件的內容,並且對於現在的方法很簡單的批處理文件,寫屏幕(我做的一個網頁,但將遷移到一個簡單的服務後)
Private Sub GetVersionNumber()
Dim versionFile = Server.MapPath("~/services/version.txt")
Dim batchFile = Server.MapPath("~/services/version.bat")
Process.Start(batchFile)
Dim revision As String = String.Empty
Using reader As New StreamReader(versionFile)
Do While reader.Peek() <> -1
revision = reader.ReadLine()
Loop
End Using
Response.Write(revision)
End Sub
我已授予每個人都寫訪問服務目錄,並明確對version.txt,但是當我打該頁面是version.txt文件總是空的。如果我在記事本++中打開該文件,那麼我會收到一條消息,指出該文件已被其他程序修改過,是否需要重新加載它。當我做它是空的。如果我在文件中設置了一些文本並保存,然後再次訪問網頁,我的文本文件的內容就會被清除。
我在try/catch塊中有這個,但沒有拋出異常,所以我刪除了它(爲了清楚起見)。
最終所有我需要的是得到
結果汞識別--num
顯示爲對網頁/服務,將通過一個單獨的SharePoint網站
請注意,每次工作副本更新時,您都可以配置Mercurial'update'掛鉤來自動調用您的'identify'命令。 –
這樣_could_更新文本文件?這意味着每次頁面被調用時都不需要發生......這會更好。這將如何工作? –
是的。在存儲庫的'.hg \ hgrc'文件的[hooks]部分添加如下內容:'update.writeversion = hg identify --num> services \ version.txt'。更多信息:http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html,http://mercurial.selenic.com/wiki/Hook和http://www.selenic .com/mercurial/hgrc.5.html#hooks –