tlbinf32.dll 在 64 位 .Net 应用程序中
tlbinf32.dll in a 64bits .Net application
似乎没有 64 位版本的 tlbinf32.dll
,这个(旧的)COM DLL 用于提取 COM 组件的信息。 (见此 SO answer )
我需要从 64 位 C# 应用程序访问它。
我没有设法将它托管到一个单独的代理进程中,我仍然获得异常 REGDB_E_CLASSNOTREG
。我的代码适用于 x86 平台,但我也必须为 64 位平台实现它。
任何人都可以通过提供一步一步的程序来帮助我将其启动到代理(Dllhost
) - 或者可能是另一种使用它的方式吗?
您是否知道浏览所有方法的更好替代方法,类.. 本机 COM Dll?
- 打开Windows'"Component Services"
- 打开节点 "My Computer/COM+ Applications"
- 右击,选择添加新的应用程序
- 选择一个 "empty application",例如将其命名为 "tlbinf"
- 确保您选择 "Server application"(这意味着向导会很好地帮助您创建代理)
- 选择您希望服务器应用程序 运行 作为的用户(为了测试,您可以选择交互式用户,但这是一个重要的决定)
- 您不必添加任何角色,而不是任何用户
- 打开这个新建的应用,右击"Components"选择添加一个新的
- 选择安装新组件
- 浏览到您的 tlbinf32.dll 位置,在向导检测到 3 个要公开的接口后按 "Next"
就是这样。你应该看到这样的东西:
现在您可以使用相同的客户端代码,它应该可以工作了。请注意,性能不可比(进程外与进程内)。
您刚刚创建的代理应用程序有很多参数,您可以稍后重新配置,同样 UI。您还可以编写脚本或编写代码(C#、powershell、VBScript 等)来自动执行上述所有步骤。
似乎没有 64 位版本的 tlbinf32.dll
,这个(旧的)COM DLL 用于提取 COM 组件的信息。 (见此 SO answer )
我需要从 64 位 C# 应用程序访问它。
我没有设法将它托管到一个单独的代理进程中,我仍然获得异常 REGDB_E_CLASSNOTREG
。我的代码适用于 x86 平台,但我也必须为 64 位平台实现它。
任何人都可以通过提供一步一步的程序来帮助我将其启动到代理(Dllhost
) - 或者可能是另一种使用它的方式吗?
您是否知道浏览所有方法的更好替代方法,类.. 本机 COM Dll?
- 打开Windows'"Component Services"
- 打开节点 "My Computer/COM+ Applications"
- 右击,选择添加新的应用程序
- 选择一个 "empty application",例如将其命名为 "tlbinf"
- 确保您选择 "Server application"(这意味着向导会很好地帮助您创建代理)
- 选择您希望服务器应用程序 运行 作为的用户(为了测试,您可以选择交互式用户,但这是一个重要的决定)
- 您不必添加任何角色,而不是任何用户
- 打开这个新建的应用,右击"Components"选择添加一个新的
- 选择安装新组件
- 浏览到您的 tlbinf32.dll 位置,在向导检测到 3 个要公开的接口后按 "Next"
就是这样。你应该看到这样的东西:
现在您可以使用相同的客户端代码,它应该可以工作了。请注意,性能不可比(进程外与进程内)。
您刚刚创建的代理应用程序有很多参数,您可以稍后重新配置,同样 UI。您还可以编写脚本或编写代码(C#、powershell、VBScript 等)来自动执行上述所有步骤。