2009-10-06 20 views
0

我們已經開始使用Final Builder爲我們的vb6和.net項目創建構建。我們也在使用Visual Source Safe來管理我們的來源。我們的一些vb6 exe文件依賴於某些ocx文件,因此特定的vb6 exe文件可能需要特定版本的ocx文件。應該在每次構建主應用程序時構建組件

問題是,如果我們的exe項目的最終構建器腳本也重新構建ocx項目,或者更好地簡單地拖動已編譯的ocx的特定版本。我擔心的是,其他開發人員可能已經打破了構建(或創建一個錯誤)的ocx,然後可能會打破我們正在試圖建立的exe。而且,重新構建ocx項目會導致ocx的版本相同,但是日期不同,如果出現dllhell(ocx hell)問題,會導致混淆。

乾杯, 邁克

+0

在Mike上面的特殊情況下,應始終使用最新版本的ocx。 ocx爲同一個VB6應用程序的不同版本提供了一個通信層(針對不同客戶的不同版本)。 –

回答

2

有一個在建立和維護一個OCX和的ActiveX DLL之間您的應用程序方面沒有差別。 ocx應該使用二進制兼容性,併成爲編譯過程的一部分。然而,這是一條通用規則。你可能有一些組件很少改變,如果有的話。在我自己的VB6應用程序中,我有幾個組件位於我的參考層次結構的最底層,很少得到更新。他們最好每年更新一次或兩次。有些幾年來沒有更新過。

不過,根據您的描述,聽起來好像控件仍在修改中。所以我懷疑第二種情況適用。

最後用你最好的判斷。

+0

在這種情況下,ocx使用二進制兼容性,並且是編譯過程的一部分。 ocx被構建,然後exe被構建。 第二種情況'排序'適用,因爲ocx每年只更新一次或兩次。性能最新的更新。在任何情況下,接口都不會改變,二進制兼容性得以保留。 構建過程還會壓縮發佈包中的所有組件,因此在構建中包含ocx會很有用,以確保應用程序始終使用最新(和高性能)版本 –

0

有兩種使用OCX/DLL的方式:代碼可重用性與超大型項目的碎片化。

那些用於重複使用的構建,構建和重建將是荒謬的,幾乎從不應該根據新應用進行定製。這些是你的皇冠上的寶石,大多數人應該沒有能力修改源頭。他們是貴組織「圖書館作家」的領域,因爲他們就是這樣:圖書館。

如果你只是有大的,單片的unweildy應用程序,你可能不得不去其他路線。然後,OCX和DLL簡單地成爲「模塊」概念的一個尷尬擴展。這就是爲什麼我們有項目組。

雖然您的圖書館用戶不應該擺弄圖書館。我相信他們都喜歡自己能夠「確保他們是最新的和性能的」,但這完全是一個不同的辯論。