2013-10-16 48 views
0

我想我們從舊的基於CruiseControl的構建服務器遷移到新的TeamCity一個具有與老VB6基於組件,我們仍然有問題,指定VB6.EXE位置。如何爲惡性

我們正在使用Nant腳本,使任務更容易,但是我用vb6 nant任務命中了障礙。我已經安裝了nant.contrib.tasks使得標籤現在被公認的,但我仍然得到一個錯誤......

[Step 1/1] D:\TeamCity\buildAgent\work\d2bf2472d554430\VB6Web\VB6Web.build(157,8): 
'vb6' failed to start. 
[Step 1/1] Step VB6Web Build (NAnt) failed. 

我明白,這個錯誤「‘VB6’啓動失敗。」通常意味着它找不到vb6.exe,但我看不到如何在腳本中指定它。

根據doco的說法,「exename」是「應該用來啓動外部程序的可執行文件的名稱」。但被指定爲「框架可配置參數」。我試圖將它添加到vb6標記作爲屬性,但它給了一個意外的屬性錯誤。

我似乎無法找到如何指定vb6.exe路徑作爲框架可配置參數在任何地方的示例...請幫助。

回答

5

您不需要設置(也不打算設置)exename參數,NAnt任務將爲您找到VB編譯器。 exename框架可配置參數實際上在vb6任務從中繼承的抽象類ExternalProgramBase中定義。

vb6任務要求安裝Visual Basic IDE,以便它可以使用vb6.exe。它會通過查找SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\ProductDirrefer the source code)找到vb6.exe

既然您已經指出這是一臺新的機器,並且您正在重新安裝軟件(例如NAnt Contrib),您很可能沒有在這臺新機器上重新安裝Visual Basic。如果您已安裝它,請檢查註冊表項並按照路徑,您可能需要重新安裝Visual Basic以修復註冊表項。

+0

感謝您的信息,我得查,在上午,但至少我現在知道爲什麼我找不到如何設置它(!)。 VB6是完全安裝並通過IDE構建了有關項目工作正常(因爲是工作室的其它版本),這是我檢查的第一件事,所以它可能是REG。關鍵已成爲腐敗。 除此之外,我可以簡單地將腳本轉換爲使用exec標記直接運行構建,這是一種恥辱,因爲我希望不必在服務器之間更改它們太多。 我會再次報告我的發現,再次感謝。 – Mike

+0

似乎,儘管VB6被安裝並在盒子上工作,該reg。鍵不存在,因此可以解釋我遇到的問題。感謝您的幫助隊友,非常感謝。 – Mike

+0

只需添加到: 上述密鑰將存在於SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 6.0 \ Setup \ Microsoft Visual Basic \ ProductDir \下的x64系統上。 比較nantcontrib 0.91和0.92之間的行爲,x64系統上的0.92似乎從SOFTWARE \ Microsoft \ VisualStudio \ 6.0 \ Setup \ Microsoft Visual Basic \ ProductDir中讀取,而不是從Wow6432Node中讀取。從Wow6432Node複製到x64註冊表配置單元似乎導致nantcontrib 0.92找到vb6.exe。 (我相信nantcontrib的版本是我測試中唯一的區別。) – Zeinrich