2010-03-05 64 views
0

我正在使用的應用程序的一部分是傳統的Vb6 Windows窗體應用程序。項目中的所有文件都在源代碼管理(VSS)下,除Vb6項目文件外。從我可以從其他項目開發人員那裏獲得的原因是,項目中使用的com組件在每個開發人員機器上具有不同的引用。我想將項目文件移動到VSS中,這樣當文件添加到項目中時,可以在項目文件和其他開發人員(更重要的是自動構建腳本)中更新這些文件,以便從源代碼安全地獲取最新的項目文件。Vb6項目文件和源安全

有誰知道/我怎麼能以這樣的方式,以不腐敗在不同的開發機器其他COM組件的參考實現這一目標?

+0

瞭解MIDL及其編譯器。對於大型VB6應用程序可能發生的最好的事情是更好地控制類型定義。 http://msdn.microsoft.com/en-us/library/aa367091%28VS.85%29.aspx – dkackman 2010-03-05 16:39:02

回答

2

我不同意你的同事。如果每個開發人員在他們的機器上需要不同的引用,我敢打賭,你已經有了一些奇怪的COM類型用法。很可能你的CoClass類型和接口類型被編譯到你的dll中。

COM是所有接口和實現分離(即使VB6做,最好通過爲每個伴生類默認接口,而不是告訴你關於他們撤消)。將您的類型移動到TLB類型的庫中,並在您的項目中引用它。讓每臺機器上的COM註冊來處理實例化的具體類;這就是它的存在。

如果你的團隊與COM引用掙扎這麼多的更深層次的東西是錯誤的。

+0

謝謝你。 – Andrew 2010-03-05 22:11:20

0

長話短說,沒有。

真正的問題是,開發商不是從同一個地方讓他們的COM組件,或者是因爲他們在本地編譯它們,或者他們獲得不同版本的相同的組件。如果COM對象不在持續開發中,真正的解決方案是讓所有開發人員安裝他們所需的相同版本的組件。

0

你需要保持一個描述您的開發項目文件夾結構的標準。例如,我總是建議創建替代驅動器SUBST。如SUBST H:C:\ DEV_ \ APP \ Visual Studio 2008.這使開發人員可以將他的東西放在他需要的地方。在這個「新」驅動器中,我推薦一個「系統」文件夾。每個COM對象和依賴關係都放在一個子文件夾中。所有項目僅從H:/ System /引用COM對象。不同的COM版本進入一個新的版本作爲文件夾名稱的一部分。例如,C:\ DEV_ \ APP \ DEV \ SYSTEM \ Iocomp和C:\ DEV_ \ APP \ DEV \ SYSTEM \ Iocomp2。

(不要忘了從正確的路徑,「新」驅動器註冊COM對象。)

我使用批處理文件在啓動時設置4個不同的充發展的驅動器。

有關使用SUBST的好處,是可以退房,以不同的文件夾,然後創建一個「H」車開到該文件夾​​,一切正常。

我一直在使用這個技術,因爲1996年到很好的效果。我從來沒有任何問題。最難的部分是讓其他人介紹這項技術。