是否可以强制互操作程序集引用其关联的COM DLL的本地副本?
这是场景:
我有一个引用互操作程序集(Interop.OTAClient.dll)的.NET应用程序,它是COM DLL的互操作程序(OTAClient.dll,它是HP Quality Center的自动化API).我对COM不是很了解,但据我所知,interop程序集通过注册表中的GUID引用查找COM类,而不是指向特定文件.
我遇到的问题是,注册表项指向的OTAClient.dll副本会被不同版本覆盖,具体取决于我刚刚在浏览器中登录的QC版本,并且这些DLL的不同版本与之不兼容彼此. .NET应用程序只会连接到特定版本的QC,因此我不能以这种方式改变COM DLL.
任何建议将不胜感激,因为这种行为真的很烦人.我已经看到有关COM互操作问题的其他问题,但它们似乎都是强制使用本地版本的互操作DLL而不是GAC中的一个,而不是涉及实际COM DLL的这种特定情况.