A机器运行一个COM+服务器(.DLL)
B机器运行客户端
结果客户端去创建A机器的远程COM+对象时,报错“Interface not supported”
目前最好的解决方法是:
将服务器的.tlb文件拿到客户端去注册一下,但注册后就将.tlb文件钉死了(不能移动,删除,改名,改路径),好像是注册表里有条目引用这个文件,当创建A机器的远程COM+对象,就会从注册表获得.tlb文件文件路径,然后去从这个文件去读相关信息。
有没有不要钉死某个文件的方法
或将接口信息全部写入注册表

解决方案 »

  1.   

    对COM+ 了解一点,你可以在Client 的工程的单元文件中加入.tlb,然后在每个单元文文件中引用它,再编释Client 应庐就不用在客户端注册了。
      

  2.   

    我现在也为这个发愁呢?楼主提到的“将服务器的.tlb文件拿到客户端去注册一下”是怎么回事?怎么注册呢?regsvr32? 它可以注册.tlb文件吗?
      

  3.   

    不行的,COM+组件的客户程序也需要IID,而注册表中的IID键下有你的类型库路径,你可以做一个安装程序将你的应用打包后再发布