取消注册没有文件的DLL

时间:2014-01-24 19:06:34

标签: dll regsvr32 dllregistration

作为构建过程的一部分,通过regsvr32向COM注册了几个dll和tlb。在构建结束时有一个步骤,它会注销相同的dll和tlb列表。但是,如果构建提前失败,则不会运行该步骤。

问题是后续构建并不总是使用相同的构建路径,并且项目构建失败,因为它们在错误的位置寻找已注册的dll(因为它们仍然在以前的失败构建中在COM中注册)。

简单的解决方案是确保取消注册脚本在每次构建结束时运行,无论是失败还是传递,但是使用我们的构建工具并不是那么容易。有没有其他方法可以取消注册dll的/ tlb而没有原始源文件存在于其注册路径中?

1 个答案:

答案 0 :(得分:1)

您不需要使用与注册时相同的dll调用取消注册,您只需要知道您取消注册的dll会删除其DllUnregisterServer方法中与丢失的dll文件在其DllRegisterServer方法中执行的相同的类。

考虑到这一点,您应该能够在新路径中使用dll来取消注册旧路径上的dll。

也许尝试在注册之前尝试更改构建过程以取消注册dll,它会在注册正确的dll之前清理对丢失的dll的悬空引用,你应该好好去。

相关问题