我有一个dll登记com互操作,所以在HKLM软件\类\CLSID[我guid]\InprocServer32[我的版本没有]\代码,它具有道路的注册dll。然而,我已经重新安排我的文件夹结构,使路径,不再是正确的。是否有办法的取消注册,dll没有把它找回来,然后取消注册,然后删除的文件了吗?

如果我没有这dll任何更多,或者只有一个不同的版本号码吗?

有帮助吗?

解决方案

不同的版本号(一般)并不重要。只要新的DLL包含所有出现在旧版本的GUID,这将是未注册正确(使用新的使用regasm,EXE)。当然,重新注册组件,用于COM互操作将正确地重新定位必要的注册表项。

其他提示

据我知道 - 所有你需要的是在它的新位置注册DLL结果。 您可以使用MS工具 OLEView.exe这类以验证COM注册点到正确的位置。

这个问题,我们遇到只有注册的新dll时,它有一个较低的版本于先前登记的一个。你结束了这个在注册表中:

HKCR\MyLib.MyClass\CLSID:(Default)=<my guid>

and 

HKCR\CLSID\<my guid>:Assembly=<string containing version number> 

and 

HKCR\CLSID\<my guid>\InprocServer32\<version number>\ ... more details

我认为,运行时间将尽量负荷的组件确定 HKCR\CLSID\<my guid>:Assembly, 所以你想尝试以注销,如果可能的。

这不是答案如何取消注册,但是如果你不能注销,我已经找到了有用的,在那里得到并删除关键的版本号你不再拥有,而且很可能更新 Assembly 值的手如果你敢。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top