2010-05-24 16 views
1

我們的兩個程序使用相同的COM服務器(也由我們製作)具有相同的類ID。安裝時的每個程序都將COM服務器文件複製到其文件夾中,並且將COM服務器作爲regsvr32我可以使用清單來使用COM服務器而不指定其版本嗎?

問題是如何安裝COM服務器,以便用戶可以將我們的一個或兩個程序以任何順序安裝到不同的文件夾中,並且可能有不同的版本。顯然,如果不改變class ID,這是不可能的,而且配置很麻煩。理想情況下,我們希望使用清單,並沒有regsvr32

問題是每當我讀到無reg的COM(例如,here)時,assemblyIdentity中就有version屬性。版本號應該每晚更改,我完全不喜歡(自動)調整它的想法。我明白爲什麼指定對特定版本的依賴性很好,但在我們的場景中完全沒有用處。

有沒有辦法爲COM服務器和消費者編寫清單,以便它們不指定版本,只需要在文件夾中碰到任何版本的文件?還有一種方法可以將搜索限制在與消費者相同的文件夾中嗎?

回答

0

Windows僅在global location followed by the application directory中搜索清單。如果你沒有在全球安裝任何東西,搜索將被有效地限制在同一個文件夾中。

如果您始終將COM服務器與COM客戶端放在同一文件夾中,那麼它們實際上就是一個「軟件單元」。 version注意事項是不同軟件單元之間的接口契約,所以在你的場景中並不重要。您可以從標識中忽略版本屬性,或者將其設置爲「1.0.0.0」之類的固定值,並且知道在這一點上,它的分配方式取決於您分發軟件的方式以確保正確的版本控制故事,並排系統。

相關問題