我正在Visual Studio 2010/.NET 4中開發一個小程序(一個dll),它通過COM interop與外部應用程序(我們稱之爲ExApp)集成。我使用TlbImp.exe
自己生成互操作程序集,因爲外部應用程序沒有提供任何操作。 ExApp有三個流行版本,每個版本都有一個完全相同的API,但每個版本都有一個不同的(和不兼容的)生成的互操作DLL。目前,這意味着我有三個單獨的安裝:Windows安裝程序可以根據外部應用程序的版本部署程序集嗎?
- 安裝W/
my.dll
內置/對Interop.ExApp.dll
V1 - 安裝連接W/
my.dll
內置/對Interop.ExApp.dll
V2 - 安裝鏈接瓦特/內置
my.dll
/鏈接到Interop.ExApp.dll
v3
必須有一個比這更好的解決方案。
如何配置Visual Studio/Windows Installer以便我只需要安裝一個.exe?這意味着安裝程序將檢測ExApp的版本,並安裝相應版本的my.dll
和Interop.ExApp.dll
。
還有一個額外的問題:由於ExApp API未發生有意義的變化,我怎樣才能編譯一個版本的my.dll
來與任何已安裝的ExApp版本一起使用?
C#* dynamic *關鍵字或vb.net的後期綁定是COM中的一個選項。否則,安裝程序必須戳註冊表才能查找CLSID密鑰。這是自定義的。 –