在注册新版本之前,我需要取消注册以前的DLL吗?
本文关键字:注册 DLL 取消 新版本 | 更新日期: 2023-09-27 18:12:42
我有一个。net DLL,我想使用regasm
注册。我对c#相当陌生。
假设我必须升级我的DLL,而旧的DLL已经注册了。在注册新DLL之前,我需要取消注册旧DLL吗?
谢谢,
是的,很重要。如果不是为了在使用旧版本DLL的客户端应用程序中捕获错误,那么至少可以防止注册表收集很难清除的垃圾项。
你应该非常强烈支持MSBuild自动处理这个,这样你就永远不会忘记。项目+属性,构建选项卡,勾选"注册COM互操作"选项。这不仅注册程序集,而且还确保在生成开始并覆盖DLL之前,现有DLL获得未注册的。此选项的唯一要求是运行提升版VS,以便构建系统具有对注册表的写访问权限。右键单击桌面上的快捷方式,然后单击"以管理员身份运行"来触发UAC提示。
如果你因为某些原因没有使用这个属性,那么在任何[ComVisible]接口或类上使用[Guid]属性就变得很重要了。这确保了注册表项总是相同的,所以你不会因为忘记注册或忘记清理而受到太大的伤害。但是,在完成代码测试后再次删除它们是非常非常重要的。如果你不确定COM版本控制要求,忘记这样做会导致一个特别讨厌的DLL地狱。
如果CLSID没有更改,则不需要注销旧的CLSID