2013-06-18 186 views
0

我們有一個使用ActiveX控件的舊VB6項目,其中一些是我們構建的,還有一些是我們從第三方供應商處獲得的。在沒有註冊的情況下構建VB6項目

目前,我們使用一個.csproj的項目,該項目將執行以下操作,

  • 執行REGSVR32註冊OCX控件
  • 執行VB6打造VB6項目
  • 執行REGSVR32註銷OCX控件

這種註冊/註銷非常難看,對於本地開發人員在啓用UAC的情況下構建起來有點痛苦。完全可以建立一個VB6項目而無需註冊任何控件?

我很抱歉,如果這已經問過。我能找到的唯一類似問題是關於如何構建VB6項目,以及這些問題的答案提到了註冊,構建,取消註冊的相同解決方案。

+0

您可能比我做得更好,使用類似的過程,但使用.bat腳本。 – tcarvin

回答

2

這意味着原始開發者可能沒有正確設置「二進制兼容性」。這意味着VB6的dll在每次構建時都會得到一個「新的comid」。 這意味着您的原始VB6開發人員可能是一堆黑客。

您可以在這裏閱讀關於二進制兼容性的部分。

http://support.microsoft.com/kb/161137

獲取時間機器和回去衝在臉上誰說:「我們不需要 現在的工作了二進制兼容性問題的人,我們就註銷並重新註冊組件...易Peezey!「................

如果我錯了,請讓我知道。但每次我看到「取消註冊com」和「重新註冊com」......它都會回到那個聰明的決定。

這裏是它一個較長的討論:

http://www.techrepublic.com/article/demystifying-version-compatibility-settings-in-visual-basic/5030274

編輯:

如果OCX的是不改變........那麼你應該只需要註冊一次他們在建造機器上一次。

0

聽起來像這些人只是在這些OCX的客戶端上工作,而不是自己修改和重新編譯OCX。

如果是這樣,那麼您應該像管理VB6開發系統一樣管理這些庫的安裝。這意味着每個工作站都需要安裝您正在使用的控制套件一次(嗯,並且在新版本投入使用時保留)。開發人員庫的安裝人員部署諸如.DEP文件以及設計時許可證密鑰註冊表項等內容,因此不應將regsvr32視爲可行的策略。

如果您正確設置開發人員工作站並維護它們,則沒有任何理由要註冊和取消註冊這些事情。

相關問題