代码之家  ›  专栏  ›  技术社区  ›  Newbee

在注册新版本之前,是否需要取消注册以前的DLL

  •  0
  • Newbee  · 技术社区  · 12 年前

    我有一个.Net DLL,我想使用它注册 regasm 。我对C#相当陌生。

    假设我必须升级我的DLL,并且旧的DLL已经注册。在注册新DLL之前,是否需要取消注册旧DLL?

    谢谢

    2 回复  |  直到 12 年前
        1
  •  2
  •   Hans Passant    12 年前

    是的,很重要。如果不在使用旧版本DLL的客户端应用程序中发现错误,那么至少要防止注册表收集难以清除的垃圾条目。

    你应该 非常 强烈支持MSBuild自动处理这一点,因此您永远不会忘记。项目+财产,构建选项卡,勾选“注册COM互操作”选项。这不仅注册程序集,还确保现有DLL 未注册的 在构建开始并覆盖DLL之前。此选项的唯一要求是运行VS提升,以便生成系统可以对注册表进行写访问。右键单击桌面上的快捷方式,然后单击“以管理员身份运行”以触发UAC提示。

    如果出于某种原因不使用此属性,那么在任何[ComVisible]接口或类上使用[Guid]属性就变得很重要。这确保了注册表项始终相同,因此您不会因为忘记注册或忘记清理而受到太大的伤害。然而,在完成代码测试后,再次删除它们是非常非常重要的。如果您不确定COM版本控制要求,那么忘记这样做会导致一种特别讨厌的DLL地狱。

        2
  •  0
  •   paul    12 年前

    如果CLSID没有更改,则不需要注销旧的CLSID。

    推荐文章