首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从共享文件夹运行程序的问题

从共享文件夹运行程序的问题
EN

Stack Overflow用户
提问于 2012-02-16 11:09:31
回答 2查看 205关注 0票数 0

我们目前正在基于提供给我们的.net 4.0开发外部实用程序。

主程序(外部实用程序的启动位置)位于虚拟服务器上。因此,每个用户都可以通过进入网络文件夹并启动.exe来启动程序。

在主程序中,有一个选项可以启动外部实用程序,这些实用程序也是从网络路径启动的。

外部实用程序通过api dll连接到主程序。如果我没有弄错,dll是activex组件。

所有开发人员都有一个本地安装的主程序。在.Net中创建引用需要这样做。如果安装不可用,则无法绑定引用。对于开发人员来说,该工具可以工作。

但是对于没有完整安装的最终用户来说,这个工具不能工作,因为它会在注册表中查找一些值。这些在终端用户站是不可用的。

最终用户在尝试启动时会收到此警告。

无法将'System.__ComObject‘类型的COM对象转换为接口类型'MegaMapp.MegaCurrentEnv’。此操作失败,因为对IID '{33D6C7C0-7D1B-450E-B8A4-8A8611D5B40F}‘接口的COM组件的QueryInterface调用失败:不支持此类接口( HRESULT: 0x80004002 (E_NOINTERFACE)除外)

{33D6C7C0-7D1B-450E-B8A4-8A8611D5B40F}是最终用户无法使用的注册表项。

有没有办法告诉工具,它们应该从exe所在的服务器加载注册表项,而不是从它们的本地注册表加载注册表项?

EN

回答 2

Stack Overflow用户

发布于 2012-02-16 11:16:20

ActiveX组件将始终需要客户端计算机上的注册表设置。

在使用DLL之前,可以在应用程序启动期间使用regsvr32注册DLL。我不确定是否需要管理员权限。

我不会尝试在这样的环境中使用ActiveX。

是我们与软件进行通信的唯一途径。所以我们用api调用构建了.net程序。

构建一个使用ActiveX组件的服务器(例如WCF服务主机),并从每个客户端与该服务器进行对话。

票数 1
EN

Stack Overflow用户

发布于 2012-02-16 11:17:22

如果外部实用程序是ActiveX EXE,那么可以使用标准的regsvr32实用程序在最终用户的机器上注册它。它只需要做第一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9310229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档