.net 卸载期间删除dll时未注销dll的后果?

.net 卸载期间删除dll时未注销dll的后果?,.net,dll,com,.net,Dll,Com,可能发生的最糟糕的事情是什么?假设某个应用程序已从硬盘上删除,但DLL未注销,然后安装了该应用程序的更新版本 旧DLL的注册是否会指向新DLL,但包含不正确的类型数据 如果新DLL放在不同的地方,旧DLL的注册是否会导致对(已注册的)新DLL的调用失败?对于COM注册的DLL,我绝对建议在复制新文件之前取消注册。取消注册过程(使用安装程序完成时)将检测正在使用的DLL并警告您需要重新启动。此外,这还意味着,在复制新文件或注册新文件时,无法加载DLL(一旦注销)。“我计划以错误的方式进行操作,但我

可能发生的最糟糕的事情是什么?假设某个应用程序已从硬盘上删除,但DLL未注销,然后安装了该应用程序的更新版本

旧DLL的注册是否会指向新DLL,但包含不正确的类型数据


如果新DLL放在不同的地方,旧DLL的注册是否会导致对(已注册的)新DLL的调用失败?

对于COM注册的DLL,我绝对建议在复制新文件之前取消注册。取消注册过程(使用安装程序完成时)将检测正在使用的DLL并警告您需要重新启动。此外,这还意味着,在复制新文件或注册新文件时,无法加载DLL(一旦注销)。

“我计划以错误的方式进行操作,但我知道正确的操作方式是什么。可能会发生什么情况?”这取决于具体情况。如果安装检测到旧的注册并且没有更新它,那么是的,它将指向旧的DLL。如果它只是覆盖注册,那么它将指向新的DLL。但是,“注册”对你来说意味着什么呢?@Damien好吧,那么聪明的屁股,告诉我:-)@PeterRitchie(抱歉弄错了身份!)注册,对我来说,意味着本地DLL向regsvr32注册,向regasm.NET注册。
regasm/codebase
,甚至。这些都是好的方面。假设用户不尝试这样做,那么旧的注册会被“挂起”并干扰新的注册吗?对于COM组件,您永远无法真正确定何时/如何使用它们。这可能不是用户的直接操作。