2010-07-23 77 views
3

而不是建立一個整體項目組(幾個DLL文件和可執行文件),我想從這樣的命令行運行組: VB6 /runexit project如何在Hudson中運行VB6項目?

它消除編譯步驟,並保持了註冊表清理。

我可以設置Hudson作業,它從源代碼控制獲取最新代碼並運行命令行。我遇到的問題是目標程序中途中斷。我可以通過哈德森Web界面確定。

發生了什麼事?

回答

2

這裏遇到的實際問題是,VB6查找註冊表中的某些系統設置。當你自己運行項目時,VB會從你的用戶那裏獲取設置。當Hudson作爲服務運行時,它以本地系統的身份登錄,該系統具有自己的註冊表設置。

這裏相關的VB6設置是Options/ErrorTrapping。默認情況下,註冊表包含「中斷所有錯誤」。有問題的項目需要「處理未處理的錯誤」。症狀似乎是VB6在發生錯誤時鎖定。

該解決方案涉及從我的用戶導出相關設置並將它們導入本地系統。

有一個answerlink關於在本地系統下運行註冊表,但我的答案是使用哈德森本身作爲本地系統運行註冊表。還有一個關於vb6 ide設置的問題here

  1. 使用命令窗口,從該密鑰導出VB設置像這樣的文件:

    regedit /e vbide-1.reg "HKEY_CURRENT_USER\Software\Microsoft\VBA\Microsoft Visual Basic"

  2. 創建哈德森一個新的工作,這無助於現在,但點擊立即生成創建一個作業文件夾。

  3. 找到它創建的文件夾並將vbide-1.reg複製到那裏的'workspace'文件夾。現在再次
    regedit /s vbide-1.reg

  4. 單擊生成和批處理命令應運行:

  5. 配置哈德森工作來執行此Windows批處理命令。在控制檯輸出驗證:
    ...\workspace>regedit /s vbide-1.reg

  6. 禁用生成,或只是刪除項目。

+0

由於它在編譯時使用錯誤的設置時會掛起,當使用正確的設置進行編譯時編譯錯誤時會發生什麼?它會掛起嗎?如果是這樣,你應該尋找一個不同的解決方案。不允許構建掛起,如果構建成功或不成立,則不構成。 ---另一個想法是local_system帳戶。此帳戶有很多權限。你可以考慮爲你的Hudson實例創建一個特殊用戶,並以該用戶身份運行該服務。否則,每個可以在哈德森配置作業的人都擁有Hudson服務器的管理權限。 – 2010-07-23 17:57:06

+0

好吧,我會尋找編譯錯誤的東西。我現在只是在嘗試,所以權限現在無關緊要。 – quamrana 2010-07-23 19:26:34