Xia*_*ofu 7 .net dll com-interop hp-quality-center
是否可以强制互操作程序集引用其关联的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的这种特定情况.
Xia*_*ofu 10
帕维尔指出我正确的方向,所以我将标记他的答案.为了其他人的利益,这就是我所做的:
这样,您可以登录和退出QC实例,其版本与应用程序使用的版本不同,而不会破坏它.在我的例子中,我有一个本地QC实例,它是v9并用于特定于项目的自动化(由于各种原因,它经过大量定制以满足我们的需求,具有大量的屏幕截图存储空间等),并且我的应用程序连接到该实例.但是,对于手动测试,我还需要在IE中使用登录到位于其他位置的v9.2实例.如果我以前登录过v9.2实例,那么我必须在IE中打开v9实例并让它重新下载控件,然后再次运行我的应用程序......现在我没有.:)