代码之家  ›  专栏  ›  技术社区  ›  Max Schmeling

如何将组件服务移动到新服务器?

  •  0
  • Max Schmeling  · 技术社区  · 15 年前

    我可以使用COMAdminCatalog工具自动导出和安装应用程序(导出一个CAB文件),但这会复制DLL和所有内容,我们不希望这样做,因为这样做无法将它们放回正确的位置。虽然如果我可以提取它们所在的目录,然后在安装时指定该目录,那就可以了。但我不知道如何获取dll的目录。如果有两个DLL,那怎么办?

    有什么想法吗?

    2 回复  |  直到 15 年前
        1
  •  0
  •   Toby Allen mercator    15 年前

    您可以导出,然后在新计算机上安装,然后重新注册所有DLL。这将更新COM+服务器上每个COM包中的详细信息。您可以在注册表中查找DLL的位置。

    如果COM对象是

    看看

    香港经济学院\项目.对象\CLSID\

    获取默认值,然后查找

    此密钥将提供dll的完整路径。删除所有这些dll,并在需要的位置重新注册(使用regsrv32)。

    应该给你一个开始的地方。

        2
  •  0
  •   Steve Rukuts    9 年前

    我将上述步骤转换为Powershell脚本,如果有许多组件要移动,则可以使用该脚本进行自动化等操作:

    New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT;
    
    $class = "MyObject.MyClassName";
    $clsid = (gp HKCR:\$class\Clsid).'(default)';
    $path = $(gp HKCR:\CLSID\$clsid\InprocServer32).'(default)';
    
    echo "Component path = $path";