加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

dll – RegAsm – / codebase选项何时适用?

发布时间:2020-12-14 04:33:12 所属栏目:Windows 来源:网络整理
导读:我有一个COM可见的DLL,用C#编写,我想在VB6应用程序中使用.我有两个DLL的主要用例,我想知道/ codebase选项是否适用,何时更好地在GAC中注册. 用例: 该DLL将被加载到另一个开发人员的电脑上,需要在VB6 IDE的“项目参考菜单 当VB6应用程序被释放时,DLL将被加载
我有一个COM可见的DLL,用C#编写,我想在VB6应用程序中使用.我有两个DLL的主要用例,我想知道/ codebase选项是否适用,何时更好地在GAC中注册.

用例:

>该DLL将被加载到另一个开发人员的电脑上,需要在VB6 IDE的“项目>参考菜单
>当VB6应用程序被释放时,DLL将被加载到生产机器上

有关适当使用/ codebase的任何信息将会有所帮助.

谢谢.

/ codebase选项与使用Regsvr32.exe注册COM服务器的方式完全相同.您必须选择DLL的特定位置,并将该位置的路径写入注册表.这是有风险的,COM服务器具有强大的DLL Hell问题,因为他们的注册是机器范围的.当您更新该DLL时,任何使用该服务器的应用程序将受到影响.通常情况不是很好,这通常会打破未被重新编译以使用更新的服务器的应用程序.

.NET通过能够存储由[AssemblyVersion]选择的DLL的多个版本而改进.与Windows并行缓存完全相同的是管理程序集的GAC.所以没有重建的旧应用程序将继续运行不受影响,仍然可以使用旧的DLL.这是一个很好的方法.

当您正在开发服务器时,建议使用/ codebase.您可以跳过在GAC中注册该DLL的额外必需步骤.忘记这样做是痛苦的,您的更改似乎不会起作用,因为测试应用程序将加载旧版本.当使用/ codebase时,Regasm会显示警告,警告您有关DLL Hell的潜力,可以忽略它.

当您让Visual Studio负责注册项目属性,构建选项卡“注册COM互操作”选项,那么您将获得完全相当于Regasm / codebase / tlb.

使用隔离COM(也称“注册表免费COM”)是最好的方法.它允许您将COM服务器的副本存储在与客户端程序相同的目录中,并且您完全不必注册它.然而,这需要修改客户端程序,如果您无法控制客户端应用程序,或者是其他人喜欢混淆的应用程序,则很难.例如Microsoft Office应用程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读