最后是用系统默认的administrator帐户登陆,从新注册了该com组件。windows
--update 2014/2/18 16:38测试
另有一台出现一样症状的机器,一样的办法未解决问题。spa
怀疑是我在administrator帐户下作了其余未知关键操做。.net
回忆之下,症状解除之时,问题机器恰好作了一件看起来不相干的事,安装vs2012.orm
……ci
……get
……it
经两台问题机测试,确实在安装了vs2012之后,就能正常找到该COM的类型了。io
仍是不知道为何。。。。。。
怀疑1.vs2010有bug,vs2012安装之后该组件就没问题了;
怀疑2.该com的interop.xx.dll是x86,但com自己是x64的,因此应该用x64。
(interop和com的dll之间是个什么关系?)
(在症状接触以后,这个interop.xx.dll仍然是x86.)
(会不会是vs2012就是完善了interop和com之间的。。。那啥..匹配)
怀疑3.不算怀疑,下回再有测试机会,先直接装11的rt和.net 4.5 rt看看。
-----------------------------------
另,这个COM用regsvr32 xx.dll注册是OK的,但若是用regsvr32 -n -i:user xx.dll 会报“已加载,但找不到入口点DllInstall。”
--update 2014/2/20
前面有怀疑是win7的系统盘形成某些系统文件不对,而后vs2012的安装正好。。。
用msdn的原版win7试过。不是这个缘由。
而后一条条安装update中的更新。发现安装了下面这个补丁之后,就OK了。
用于基于x64系统的windows7的microsoft .net framework 4.5.1 kb2858725 (53.7M)
可是kb2858725脱机安装包在微软下载中心是只有5m+的一个补丁。update center看起来像是内容更多。