在平台配置之间切换会破坏COM兼容性
问题描述:
我有一个相当奇怪的问题与Visual Studio一次。我有一个依赖于一个COM-Library的库。出蓝色的COM库取决于MDAC 2.7突然生成此编译错误:在平台配置之间切换会破坏COM兼容性
Error loading type library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))
连同此错误他人出现了该属性没有指定的对象上找到。在对我的系统进行了大量调查之后,我可以发现由于某些原因,某些MDAC库没有被注册。手动注册(因为安装程序不会让我重新安装它)修正了错误,但是关于未找到的属性的错误仍然存在。它归结为:
Me.prv_comObject.Value = aValuePassedIn ' This throws the error that the
Property "Value" could not be found '
' This works instead: '
Me.prv_comObject.set_Value(aValuePassedIn)
现在到了线索,在x86
配置这只断裂,在Any CPU
我仍然可以使用属性。我也无法用SharpDevelop重现这一点,SD总是期待着属性。我也不确定这是否与MDDAC-Thingy有任何关系。
这是一个VB.NET项目,COM库是VB6,操作系统是Windows XP。任何想法可能会导致这种行为?
:是的,突然。我正在开发,然后切换到Release
模式,然后它在那里,不会消失了。
:是的,我与MDAC瞎搞了,因为我想帮助查明这是now introduced with Windows 7 SP1问题(是的,我们不知道这一点)。但我没有搞乱MDAC库的注册。
答
经过三天想知道那是什么,它消失了。
我已经清理了项目,删除了obj
和bin
,突然间一切都恢复正常了。看起来像对象文件已损坏。