是否有可能強制互操作程序集引用其關聯COM DLL的本地副本?強制.NET互操作使用本地COM DLL
這裏的情景:
我有一個.net應用程序中引用的互操作程序集(Interop.OTAClient.dll),這是一個COM DLL(OTAClient.dll,這對於自動化API的互操作惠普質量中心)。我不是很瞭解COM,但據我瞭解,互操作程序集通過註冊表中的GUID引用查找COM類,而不是指向特定的文件。
我遇到的問題是,註冊表項所指向的OTAClient.dll副本會被不同版本覆蓋,具體取決於我剛纔在瀏覽器中登錄的QC版本以及這些DLL的不同版本彼此不兼容。 .NET應用程序只會連接到特定版本的QC,所以我不能讓COM DLL以這種方式變化。
任何建議將不勝感激,因爲這種行爲真的令人不快。我在COM互操作問題上看到了其他問題,但它們似乎都是強制使用interop DLL的本地版本而不是GAC中的一個,而不是涉及實際COM DLL的特定情況。
嗨帕維爾。感謝您的鏈接 - 我遵循該示例,VS按預期爲OTAClient生成清單條目。但是,如果較新版本的DLL已由使用該DLL的瀏覽器應用程序最後使用,我仍會看到相同的症狀。 您是否認爲OTAClient有可能自己的依賴關係也被更新版本覆蓋?如果是這樣,關於我如何處理這個問題的任何建議? – Xiaofu 2009-07-30 09:05:44